如何从具有边界条件

时间:2017-09-01 11:40:15

标签: regex boundary

下面是我想要查找子字符串的字符串:

拉{{MySQL}}。员工角色!.City是'西雅图'那么{{MySQL}}。EmployeePerson!.StateProvinceID else' 0'作为来自{{MySQL}}的StateProvinceID.EmployeePerson!

这是我的正则表达式

EmployeePerson!\ B'/ P>

所以我需要找到" EmployeePerson!"字符串,但我无法得到任何结果,所以请帮助。

提前致谢。

1 个答案:

答案 0 :(得分:0)

当您在\b之后加!时,!之后需要使用字词char。

请参阅what word boundary matches

  

有三种不同的职位符合词边界:

     
      
  • 在字符串中的第一个字符之前,如果第一个字符是单词字符。
  •   
  • 在字符串中的最后一个字符之后,如果最后一个字符是单词字符。
  •   
  • 字符串中的两个字符之间,其中一个是单词字符,另一个不是单词字符。
  •   

因此,如果您不需要在\b之后检查上下文,则需要删除!,或者将\b替换为需要非字的\B char或字符串结尾。

要查找EmployeePerson!整个单词,只需使用

即可
\bEmployeePerson!

\bEmployeePerson!\B

或 - 如果您需要确保两端都有空格或字符串的开头/结尾:

(?<!\s)EmployeePerson!(?!\s)

或 - 如果你想确保两端都没有单词字符:

(?<!\w)EmployeePerson!(?!\w)