【问题标题】:Regex matching all but last occurence of character正则表达式匹配除最后一次出现的所有字符
【发布时间】:2015-01-23 18:03:22
【问题描述】:

我正在尝试将匹配除最后一次出现的特定字符(例如感叹号 )之外的所有正则表达式组合到一个组中,然后将其他所有内容组合到另一个组中。

例子:

a!1

  • G1:一个
  • G2:1

一个!!1

  • G1:啊!
  • G2:1

a!1!a!!a

  • G1:啊!1!啊!
  • G2:一个

可以安全地假设特殊字符不能位于字符串的开头或结尾。

理想情况下,我希望这一切都在

中实现
  • 一个正则表达式
  • 无需对字符串进行额外操作
  • 不使用 RightToLeft

谢谢, 史蒂夫

【问题讨论】:

    标签: .net regex


    【解决方案1】:
    (.*)\!(.*)
    

    此处匹配测试输入/输出 http://www.myregextester.com/index.php

    【讨论】:

    • 谢谢。我在这个例子中简化了一个更复杂的案例,结果证明这很容易解决。内向的好工作。你可以做更简单的 (.*)!(.*)
    【解决方案2】:

    这应该在最后一个之前捕获任何东西!在一个捕获组中,以及在另一个捕获组之后的所有内容

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

    【讨论】:

      猜你喜欢
      • 2022-11-23
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      • 2022-10-13
      相关资源
      最近更新 更多