【问题标题】:regex: Combine 3 regular expressions正则表达式:组合 3 个正则表达式
【发布时间】:2016-05-03 11:37:19
【问题描述】:

我有 3 个正则表达式,但是当模式匹配时执行相同的操作,所以我想将所有三个表达式合并为一个。我尝试了很多但无法得到'|'即“或”在我的正则表达式中工作

正则表达式1:text.replace(/([\u00A9-\u3299])/g, function myFunction(x){ ... }

正则表达式2:text.replace(/(\uD83C[\uDC04-\uDFF0])/g, function myFunction(x){ ... }

正则表达式3:text.replace(/(\uD83D[\uDC00-\uDEC5])/g, function myFunction(x){ ... }

我试过这样做,但它不起作用 正则表达式:text.replace(/([\u00A9-\u3299]) | (\uD83C[\uDC04-\uDFF0]) | (\uD83D[\uDC00-\uDEC5])/g, function myFunction(x){ ... }

我知道这很容易,我尝试了很多搜索但没有运气。

【问题讨论】:

  • 每个字符都很重要,你不能因为它更漂亮就放空格
  • 是的,它现在有效,我觉得这样的菜鸟。我更新的正则表达式:text.replace(/([\u00A9-\u3299]|\uD83C[\uDC04-\uDFF0]|\uD83D[\uDC00-\uDEC5])/g, function myFunction(x){ ... }

标签: regex


【解决方案1】:

regular expression 语言是一种非常严格的语言,每个字符都有意义,甚至是空格( 匹配空格)。

删除空格:

/[\u00A9-\u3299]|\uD83C[\uDC04-\uDFF0]|\uD83D[\uDC00-\uDEC5]/g

(是的,您也可以在这种情况下删除无用的括号,因为没有必要为整个表达式定义组)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 2020-01-29
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多