用于匹配空格或标点符号和非字母数字的正则表达式

RegEx for matching whitespace OR punctuations AND non-alphanumerics

提问人: 提问时间:5/9/2019 最后编辑:Emma 更新时间:9/7/2023 访问量:5995

问:

我有这个正则表达式:

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

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

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

是否有任何标点符号包罗万象,例如(当我说标点符号时,我希望包含符号):

`,.#@

等。

C# 正则表达式 拆分

评论

1赞 Daan 5/9/2019
这是一份全面的指南。遵循它,您将能够自己构建它:pitnext.io/......
0赞 Michał Turczyn 5/9/2019
只需在字符类中包含其他字符即可。
1赞 Alexander Petrov 5/9/2019
请参阅下面的支持的 Unicode 常规类别和支持的命名块。
1赞 Alexander Petrov 5/9/2019
您可能需要先进行文本规范化。请参阅 String.Normalize 方法。另请参阅 Unicode 等效性规范化常见问题解答

答:

2赞 nalnpir 5/9/2019 #1

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

\W

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

评论

0赞 5/9/2019
由于重音字符/不同的词典,这不起作用,例如é
0赞 nalnpir 5/9/2019
在发送给您之前,我在正则表达式风暴中尝试过,该字符未被检测到,您希望它被检测到吗?
0赞 5/9/2019
这是我正在使用它的,并且根据regexr
0赞 nalnpir 5/9/2019
regexstorm.net/tester?p=%5cW&i=%c3%a9.fasfsaf.-%c3%a1%c3%a4 检查该链接,我没有看到你说的话
6赞 Wiktor Stribiżew 5/9/2019 #2

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

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

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

请参阅这些类引用的子属性列表

标点

财产 意义 笔记
个人电脑 标点符号,连接器 包括“_”下划线
标点符号、破折号 包括多个连字符
附言 标点符号,打开 左括号字符
体育 标点符号,关闭 右括号字符
圆周率 标点符号,初始引用 左引号。不包括 ASCII“中性”引号。根据使用情况,可能表现为 Ps 或 Pe
PF系列 标点符号,最终引用 右引号。根据使用情况,可能表现为 Ps 或 Pe
标点符号,其他

象征

财产 意义 笔记
SM的 符号,数学 数学符号(例如,+、-、=、×、÷、√、∊)。不包括括号和括号,它们属于 Ps 和 Pe 类别。也不包括 !、*、- 或 /,尽管它们经常用作数学运算符,但主要被认为是“标点符号”。
Sc 符号、货币 货币符号
SK系列 符号、修饰符
所以 符号,其他