【问题标题】:Regex matching for variables and numbers变量和数字的正则表达式匹配
【发布时间】: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


【解决方案1】:

第一条规则中的 \d+ 是否应该匹配孤立的数字?添加边界\b\d+\b,则与a2类型不匹配。 – Michael Berkowski 12 月 6 日 2:55

【讨论】:

    猜你喜欢
    • 2016-03-25
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    相关资源
    最近更新 更多