不匹配任何字母或任何标点符号的 Unicode 正则表达式
Unicode regex that do not match any letter nor any punctuation sign
我正在尝试创建一个 unicode 正则表达式来匹配除字母(任何语言)和标点符号之外的每个字符 .;:?!
。
例如字符串
abcd 123 kjd ¤%/(" .?:!
应该只匹配下面的粗体部分
abcd 123 kjd ¤%/(" .?:!
我知道 \P{L}+
匹配除字母以外的所有内容,而 \P{P}+
匹配除标点符号以外的所有内容。如何将这两个正则表达式字符串合并为一个?我试过简单地将 \P{L}+\P{P}+
放在一起,但这并没有给出所需的匹配。我也试过写 [^.;:?!]\P{L}+
但这也不起作用。
如何组合一个或多个 unicode 正则表达式,或者是否有更好的正则表达式来满足我的要求?
使用 \P{L}+\P{P}+
将匹配 1+ 次任何字母的反义词后跟 1+ 次任何标点符号的反义词。
模式 [^.;:?!]\P{L}+
与所列字符以外的任何字符匹配 1 次,后跟任何字母的反义字符 1+ 次。
你可以做的是将 \p{L}
(将匹配任何类型的字母)添加到否定字符 class。根据 Wiktor Stribiżew 的建议,您可以添加 \p{Z}
以匹配任何类型的空格。
[^\p{Z}\p{L}.;:?!]
我正在尝试创建一个 unicode 正则表达式来匹配除字母(任何语言)和标点符号之外的每个字符 .;:?!
。
例如字符串
abcd 123 kjd ¤%/(" .?:!
应该只匹配下面的粗体部分
abcd 123 kjd ¤%/(" .?:!
我知道 \P{L}+
匹配除字母以外的所有内容,而 \P{P}+
匹配除标点符号以外的所有内容。如何将这两个正则表达式字符串合并为一个?我试过简单地将 \P{L}+\P{P}+
放在一起,但这并没有给出所需的匹配。我也试过写 [^.;:?!]\P{L}+
但这也不起作用。
如何组合一个或多个 unicode 正则表达式,或者是否有更好的正则表达式来满足我的要求?
使用 \P{L}+\P{P}+
将匹配 1+ 次任何字母的反义词后跟 1+ 次任何标点符号的反义词。
模式 [^.;:?!]\P{L}+
与所列字符以外的任何字符匹配 1 次,后跟任何字母的反义字符 1+ 次。
你可以做的是将 \p{L}
(将匹配任何类型的字母)添加到否定字符 class。根据 Wiktor Stribiżew 的建议,您可以添加 \p{Z}
以匹配任何类型的空格。
[^\p{Z}\p{L}.;:?!]