以下正则表达式出了什么问题?如何修复它?:
\b\*\b
上述模式应解释为字边界,然后是 star ,后跟字边界。
明星,Jeffrey EF Friedl的星号 元字符的首选术语必须转义前面加上转义当一个人不希望将其用作元字符时,\
反斜杠。
对于字符串*
“space star space”,上述正则表达式失败。
Regex Tester for .NET测试上面的正则表达式。
Here与上面的示例相同,但选择了忽略大小写选项。
以下调整尝试也会失败:
\b[\*]\b
character class for star
\b(\*)\b
constraining parentheses
其他尝试的组合也失败了。
使用Google搜索,包括SO和MSDN,都未成功。
在a
,\ba\b
a
为found;
在*
中,\b\*\b
无法与明星
在LINQPad 5和Visual Studio 2015中也会出现相同的结果。
编辑(这解决了c#.NET的问题)TIMTWOTDI:
\B\*\B
在Regex Tester for .NET中查看此内容。
Wiktor Stribiżew's评论是有帮助的线索。
在第三版英文版Friedl's书的第133页,作者写道“如果单词边界与 \ w 一致,那将是有意义的,但情况并非总是如此”
答案 0 :(得分:0)
您不提供执行正则表达式的示例字符串,而是newpdfFile。
a*b
a*b*c*d
asdlfkj*fjldsk
1*2
您似乎正在测试<space>*<space>
并且不匹配的原因是因为空格不是单词,*
也不是,所以它们之间没有单词边界,因此没有匹配。