代码之家  ›  专栏  ›  技术社区  ›  Tornike Shavishvili

在javascript regex中,是否可以匹配捕获组匹配的字符串中的字符串?

  •  -3
  • Tornike Shavishvili  · 技术社区  · 7 年前

    我有跟绳 dfed operator 11 - 145 . 我在试着匹配绳子 operator 11 在这个匹配的字符串中,我试图匹配字符串 11 . 目前我已成功匹配 operator 11 用正则表达式 ((O|o)perator(i|I)?\s*)\d+(?=\s*(-|_)\s*\d+) . 因为我是在javascript中,所以不能使用lookbehinds。

    我的方法正确吗?在regex中有什么方法可以做到这一点吗?我怎样才能配得上绳子 十一 在以前匹配的字符串内 运算符11 ?

    谢谢你

    2 回复  |  直到 7 年前
        1
  •  0
  •   Yosvel Quintero    7 年前

    您可以通过创建第一个组来修改regex number 在匹配中 string 以下内容:

    const str = 'dfed  operator  11 -  145';
    const regex = /([O|o]perator)[i|I]?\s*(\d+)*[?=\s*(-|_)\s*\d+]/;
    const found = str.match(regex);
    
    console.log(found);
    console.log(found[1]); // <-- group for string
    console.log(found[2]); // <-- group for number
        2
  •  0
  •   Jan    7 年前

    您可以使用(注意演示中不区分大小写的标志):

    operator\D+(\d+)
    

    见 a demo on regex101.com .