【问题标题】:javascript regex string with no characters before or after [duplicate][重复]之前或之后没有字符的javascript正则表达式字符串
【发布时间】:2018-04-10 15:39:11
【问题描述】:

我想将“我”转换为“你”,而不触及其中包含“我”的单词,即
“厉害瓜我”->“厉害瓜你”

到目前为止,我得到了负面的前瞻性模式:

str.replace(/me(?![a-zA-Z])/g, 'you')

所以我明白了

"awesome melon me" -> "awesoyou melon you"

已尝试some answers,找不到符合此要求的人,在此先感谢您的帮助

【问题讨论】:

    标签: javascript regex regex-lookarounds


    【解决方案1】:

    您可以使用零宽度的\b 特殊符号来确保匹配“me”,因为它是一个完整的单词:

    "awesome melon me".replace(/\bme\b/g, "you")
    // returns "awesome melon you"
    

    【讨论】:

      【解决方案2】:

      您可以按照其他答案中的建议使用单词边界,同时保留me345hello_me。如果需要更严格的匹配模式,可以在模式前捕获匹配的字母,放入替换模式中。

      var s = "me awesome melon me"
      console.log(s.replace(/(^|[^a-zA-Z])(me)(?![a-zA-Z])/g, '$1you'));

      【讨论】:

        【解决方案3】:

        应该这样做:str.replace(\bme\b/g, 'you') - \b 查找单词边界。

        【讨论】:

          猜你喜欢
          • 2017-08-03
          • 2013-10-19
          • 1970-01-01
          • 2015-06-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-21
          相关资源
          最近更新 更多