【发布时间】:2023-03-15 19:40:01
【问题描述】:
我正在尝试匹配 javascript 字符串中的变量和数字(周围匹配 span 标签)。
我遇到了 x1、c2 等形式的变量问题。我的代码最初看起来像这样
output = output.replace(/\d+/g,"<span class=\"number\">$&</span>");
output = output.replace(/\)/g,"<span class=\"function\">$&</span>");
output = output.replace(/[a-zA-Z]+\d*/g,returnTextValue);
//returnTextValue is a function checking whether the string is a variable or plain text
//and highlighting accordingly
这导致 [a-zA-Z]+\d+ 形式的变量无法正确匹配,因为它们已被数字标签替换。
我一直在尝试使用前瞻和[^A-Za-z]?\d+ 之类的东西来获取数字,但一直找不到这样做的好方法。
我知道我可以匹配标签,但想要一个更优雅的解决方案。
我是否缺少明显的逻辑解决方案,或者有人有我不知道这种情况的正则表达式运算符?
【问题讨论】:
-
第一条规则中的
\d+是否应该匹配孤立的数字?添加边界\b\d+\b,则与a2类型不匹配。 -
效果很好,谢谢。如果你把它作为答案,我肯定会接受。
标签: javascript regex