用正则表达式不能在单词的末尾匹配字符“#”
/\b(C#)\b/i
我正在处理一些MongoDB查询。搜索的主题是我收藏中给定文本字段上的编程语言。
我正在使用且几乎一直在工作的正则表达式是
/\b(java|php)\b/i
(对于我正在寻找Java和PHP的具体情况)。
需要单词边界来搜索整个单词(javascript不能与Java匹配)
问题是,如前所述,当我寻找“ C#”时,正则表达式会失败,不会抛出任何结果。
如果我删除了最后一个边界,则正则表达式将起作用,但随后的java / javascript示例失败。
我已经被困在这里几天了,任何帮助将不胜感激。
答案 0 :(得分:0)
每https://stackoverflow.com/a/3241901/2191572:
单词边界断言该位置是在单词字符之前而不是一个字符之后,还是在单词字符之后而不是一个字符之后。
您需要创建自己的单词边界定义:
uname
https://regex101.com/r/LoOADH/1
注意:如果由于最近的编程热潮而需要匹配\b(java|php|c#)(?=[^a-z0-9_]|$)
之类的东西,那么您还必须用前行替换开头的#b
并启动字符串断言\b
,因此它看起来像:
^