正则表达式背后的断言问题

时间:2012-08-23 02:37:58

标签: c# .net regex lookbehind

这是我现在的正则表达式:

(?<=[\$T|\s|\p{P}|\$%\$%])sampleString

我想匹配我的richtextBox

中的所有sampleString

我的richtextBox中的一些示例字符串实例是这样的:

$TsampleString
$%$%sampleString

问题是我的正则表达式匹配:TsampleString,$ sampleString,%sampleString。

如何修复这个正则表达式的lookbehind断言?感谢

1 个答案:

答案 0 :(得分:2)

你正在构建正则表达式错误。你有一个字符类(用方括号表示),你只想列出替代品。尝试:

(?<=\$T|\s|\p{P}|\$%\$%)sampleString

编辑:等等,我刚刚测试过。你为什么使用\p{P}?这是标点符号。除其他外,%将匹配。

编辑II:“需要在sampleString左侧的唯一字符是$ T和$%$%”

好的,这样会更简单:

(?<=\$T|\$%\$%)sampleString