我正在使用javascript并尝试匹配数学函数,例如f(2)或g(1200),但不匹配sqrt(2)
之类的东西现在我有
/[a-z]\([\d]+\)/
并在regexr上突出显示这些
一切都很完美,除非我不想要选择sqrt的那一部分。我想看看背后的字母,但javascript不支持,任何关于如何解决这个问题的想法?谢谢:))
答案 0 :(得分:3)
只需使用单词边界:
\b[a-z]\(\d+\)
请参阅regex demo
由于JS正则表达式引擎不支持lookbehind,因此逻辑解决方法是在此处使用单词边界断言:如果与[a-z]
匹配的字母前面没有单词字符(来自{{1可以匹配它 - 这就是[a-zA-Z0-9_]
非常方便的时候。
Alsom,您不必将唯一的速记字符类模式放入字符类中,\b
将匹配与[\d]
相同的字符。