【问题标题】:Regular expression match "?" x times正则表达式匹配“?” x 次
【发布时间】:2017-01-19 01:10:37
【问题描述】:

我想匹配符号“!”仅前 x 次。我查看了正则表达式备忘单,但找不到相关示例。

我当前的正则表达式:

[!]{1}

例如,如果我想匹配前三个“!”符号并替换为空字符串:

输入:"!!dd!!dd!!"

输出:"dd!dd!!"

【问题讨论】:

  • 您需要提及您使用的技术。如果您使用 sed,它看起来像 "s/^([^!]*)!([^!]*)!([^!]*)!(.*)$/\1\2\3 \4/"。 “([^!]*)”表示捕获所有非“!”字符集。
  • 如果没有正则表达式,即使用简单的解析器,您的问题可能更容易解决。

标签: javascript regex expression


【解决方案1】:

你可以这样做:

捕获模式:

[!]([^!]*?)[!]([^!]*?)[!]([^!]*?)(.*)

置换模式:

$1$2$3$4

基本上,它说

  • [!] 捕获!
  • ([^!]*?) 捕获直到下一个字符的所有内容,不包括 !

Here's an example

【讨论】:

    【解决方案2】:

    您应该使用 {3} 正好 3 次,{3,5} 使用 3 到 5 次,{2,} 使用超过 2 次。

    【讨论】:

    • 你误解了这个问题。看看 OP 想要发生的例子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2015-04-27
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多