【问题标题】:javascript regular expression remove complete words onlyjavascript正则表达式仅删除完整的单词
【发布时间】:2013-03-06 10:01:21
【问题描述】:

我尝试在 javascript 上使用正则表达式来删除一些不需要的单词。 例如,我的基本字符串是 1.“大卫·盖塔 avi!” 2.“大卫·盖塔 avi bla bla” 3.“大卫·格塔的avi”

我想删除“avi”,如您所见,在第一个字符串中,avi 由空格和感叹号包裹,第二个字符串由空格包裹,第三个由空格包裹在右侧。

如果我使用 .replace(/avi/s,'');它也会从大卫(将是 Dd)中删除 avi。 我需要编写正则表达式的帮助,它将删除没有被符号包裹或包裹的特定单词(还有空格斜杠)。

谢谢:)

【问题讨论】:

  • 您还想删除它旁边的空格吗?像! 这样的非空格、非单词字符呢,也要删除它们吗?

标签: javascript regex


【解决方案1】:

您是否尝试过使用单词边界特殊字符? 所以正则表达式是:

\b<word>\b

【讨论】:

    【解决方案2】:

    怎么样

    \W\avi\W{0,1}
    

    \W 代表任何非单词字符。

    你也可以试试

    [^a-zA-Z]avi[^a-zA-Z]{0,1}
    

    其中[^a-zA-Z]a-zA-Z 中的任何

    【讨论】:

    • \W{0,1}\W? 相同 :)
    • @Jack 不,\W{0,1} 表示零个或一个字符,而\W 正好是一个字符。实际上我认为你应该在没有{0,1} 的情况下使用它:)
    • @Jack 我编辑从第一个非单词字符中删除 {0,1} 修饰符。我认为你应该把它留给第二个非单词字符,否则你不会在字符串末尾删除aviDavid Guetta avi
    • 我没有问问题,我发表了声明;即? 是其中的一部分 :)
    • @Jack Oooh,刚刚看到 :) 细微差别!
    【解决方案3】:

    我已将@Evan 答案组合成符号删除正则表达式 + 双空格删除,最终答案是:

    mystring.replace(/[^\w\s]|\bavi\b|\s{2,}/gi,'');

    谢谢大家:)

    【讨论】:

      猜你喜欢
      • 2017-07-08
      • 2021-08-07
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多