我有一个简单的正则表达式,匹配字符串中的精确子字符串:
"\bXXX\b"
除了1个案例之外它很酷..如果在XXX之前有特殊符号它匹配子字符串:
This is ABC #XXX DEF
如何调整正则表达式以使其与#XXX不匹配?
答案 0 :(得分:4)
如果你只想让空格作为分隔符,我会选择
<xsl:param name="url">file://888</xsl:param>
说明:
(^|(?<= ))XXX($|(?= ))
:行的开头((^|(?<= ))
)或&#34;正面的背后&#34;在一个空间(^
)。(?<= )
:行尾(($|(?= ))
)或&#34;肯定前瞻&#34;在一个空间($
)。lookbehind / lookahead表达式确保空间本身不是匹配的一部分。
答案 1 :(得分:1)
最好的方法是使用经典的空白或空间边界 不涉及任何变更,而且更快。
(?<!\S)XXX(?!\S)
这也将在字符串的开头或结尾处与XXX匹配。
此外,它可能只是一个空间边界
(?<![^ ])XXX(?![^ ])
这也会在字符串的开头或结尾处匹配XXX,但是强制
如果没有空格字符,则另一侧。