【问题标题】:RegEx for matching whitespace OR punctuations AND non-alphanumerics用于匹配空格或标点符号和非字母数字的正则表达式
【发布时间】:2019-09-27 07:38:28
【问题描述】:

我有这个正则表达式:

(\s+)|([.,!?:;'\"\'-])

这与数组中的任何空格或标点符号匹配,但不是所有标点符号,我正在努力寻找与任何标点符号匹配的示例。

我考虑过匹配字符不是字母数字的位置,但这会导致重音字母和不同词典出现问题。

标点符号是否包含所有内容,例如(当我说标点符号时我希望包含符号):

`,.#@

等等

【问题讨论】:

标签: c# regex split


【解决方案1】:

你可以使用[\p{P}\p{S}]:

(\s+)|([\p{P}\p{S}])

[\p{P}\p{S}] 将匹配任何作为标点符号或符号字符的字符。

查看list of subproperties这些类参考:

标点符号 PC 标点符号,连接器包括“_”underscore Pd 标点符号,破折号 包括几个 hyphen 字符 Ps 标点符号,打开开头bracket 个字符 Pe 标点符号,关闭右括号字符 Pi 标点符号,初始报价开头quotation mark。不包括 ASCII“中性”引号。根据使用情况,可能表现得像 Ps 或 Pe Pf 标点符号,最后的引号 结束引号。根据使用情况,可能表现得像 Ps 或 Pe Po 标点符号,其他 符号 Sm 符号,数学 Mathematical symbols(例如,+、-、=、×、÷、√、∊)。不包括括号和方括号,它们属于 Ps 和 Pe 类别。也不包括 !、*、- 或 /,尽管它们经常用作数学运算符,但主要被认为是“标点符号”。 Sc 符号,货币Currency symbols Sk 符号,修饰符 So Symbol, other

【讨论】:

    【解决方案2】:

    如果不需要匹配下划线,您可以使用

    \W

    它会匹配任何不是数字、字母或下划线的字符,而不是您当前使用的字符。

    【讨论】:

    • 这不起作用,因为重音字符/不同的词典例如é
    • 我在发送给你之​​前在正则表达式风暴中试过了,没有检测到那个字符,你想检测它吗?
    • 我正在使用它,并且根据regexr
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多