2

我的正则表达式是(?:[^\S\n]|[^[:cntrl:]])*

如果我尝试匹配Benjamin Edward Ben它匹配整个字符串,即“Benjamin Edward Ben”。

如果我尝试使用方括号匹配文本,即:“Benjamin Edw[ard] Ben”,它将匹配第一个方括号,即“Benjamin Edw”。

如果我尝试将文本与任何其他文本匹配,即“Benjamin Edw*ard^ Ben”,它将匹配整个字符串,即“Benjamin Edw*ard^ Ben”。

如何更改我的正则表达式,使其匹配整个字符串,即使它有方括号?

提前致谢。

4

3 回答 3

2

问题在于[:cntrl:]..将其更改为\p{Cc}

[:cntrl:].net 不支持类格式

\p{Cc}将匹配类似的控制字符[:cntrl:]

你的正则表达式是

 (?:[^\S\n]|[^\p{Cc}])*

这类似于

[^\S\n\p{Cc}]*

笔记

[^\S\n]表示匹配除换行符以外的空格字符。因此,使用上面的正则表达式,您还可以匹配空格

于 2013-07-04T04:44:34.920 回答
1

要仅匹配字符串,我建议简化为([\w\s\[\]]+). 进一步澄清将不胜感激

于 2013-07-04T04:39:54.407 回答
0

尝试\\regex.

于 2013-07-04T04:32:23.713 回答