Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用现成的字符类并进一步限制它_Regex_Perl_Unicode - Fatal编程技术网

Regex 使用现成的字符类并进一步限制它

Regex 使用现成的字符类并进一步限制它,regex,perl,unicode,Regex,Perl,Unicode,Perl正则表达式中提供了许多现成的字符类,如\d或\S,或新型Unicode Grokker,如 现在让我们假设我想匹配所有标点符号\p{p}(其中相当多,并且不是你想手工输入的东西)-除了一个以外,所有的都是好的旧komma(或逗号,,) 除了扩展handy character类和手动删除komma之外,还有什么方法可以指定此要求吗?试试这个 [^\P{P},] 这是一个否定字符类,它匹配除了列出的字符以外的所有字符 \p{p}否定\p{p} $ unichars -au '\p{P}'

Perl正则表达式中提供了许多现成的字符类,如
\d
\S
,或新型Unicode Grokker,如

现在让我们假设我想匹配所有标点符号
\p{p}
(其中相当多,并且不是你想手工输入的东西)-除了一个以外,所有的都是好的旧komma(或逗号,

除了扩展handy character类和手动删除komma之外,还有什么方法可以指定此要求吗?

试试这个

[^\P{P},]
这是一个否定字符类,它匹配除了列出的字符以外的所有字符

\p{p}
否定
\p{p}

$ unichars -au '\p{P}' | wc -l
598
双重否定:

/[^\P{P},]/

$ unichars -au '[^\P{P},]' | wc -l
597
“和”通过前向/后向:

/\p{P}(?<!,)/

$ unichars -au '\p{P}(?<!,)' | wc -l
597
/\p{p}(?)?

发现了一个非常类似的问题,基本上是相同的问题:太好了,谢谢!也非常有用:您指向
unichars
脚本的链接。