我正在尝试使用php和reg exp。
在文本中找到字符串“C#”我正在使用
\bc\x{0023}\b
但根本不起作用。
\bc\x{0023}
有效,但这对我来说不是解决方案
有任何线索吗?
答案 0 :(得分:3)
这是因为转义序列\b
表示单词边界。 Word根据PHP手册定义为:
“”单词“字符是任何字母或数字或下划线字符,即任何可以成为Perl”单词“一部分的字符。”。
单词边界表示单词和非单词之间的边界。换句话说,作为单词字符的字符和字符之间的不是单词字符。问题是#
不是单词字符。因此,除非#
后跟单词字符,否则#\b
将永远不会匹配。
也许您应该使用您想要的角色类更清晰地定义。例如/\bc#(?![a-z])/i
(即未跟随a-z字符范围的C#)