【问题标题】:Regex: match not-words except token正则表达式:匹配除标记之外的非单词
【发布时间】:2019-04-25 04:17:54
【问题描述】:

我正在尝试匹配字符串中除";;;" 之外的所有非单词,但我没有成功。非词是事先未知的。请看以下示例:

Teststring: 
ab-cd ef;;;gh;ij;;;
Result:
abcdef;;;ghij;;;

有人知道一个聪明的解决方案吗?

非常感谢!

【问题讨论】:

  • “非单词”?你能澄清一下什么是“非词”吗?
  • 非单词是指任何非字母数字字符。我想替换除“;;;”之外的所有内容

标签: regex regex-negation regex-lookarounds


【解决方案1】:

您可以使用以下正则表达式来获取字符串的所有部分,您要保留:

/\w+(?:;{3})?/g

它匹配任意数量的Word chars,后跟一个匹配3 semi colons 的非捕获组。这是可选的。

然后您可以通过joining all the matches 将结果创建为字符串。

【讨论】:

  • 谢谢。你能想出一种方法来匹配所有 \W 字符(除了 ;;;)以替换它们吗?
  • 这里你得到的是“你想要的”,而不是“你不想要的”,所以没有什么应该被替换的。
猜你喜欢
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
  • 2021-09-21
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多