正则表达式匹配所有但最后一次出现的字符

时间:2015-01-23 18:03:22

标签: .net regex

我试图将一个正则表达式与一个特定字符的最后一次匹配(比如感叹号)组合成一个组,然后将其他所有内容组合到另一个组中。< / p>

示例:

a!1

  • G1:a
  • G2:1

a !! 1

  • G1:a!
  • G2:1

一个!1!一个!!一个

  • G1:a!1!a!
  • G2:a

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

理想情况下,我希望在

中实现所有这些目标
  • 一个正则表达式
  • 没有使用字符串的其他操作
  • 不使用RightToLeft

谢谢, 斯特沃

2 个答案:

答案 0 :(得分:1)

(.*)\!(.*)

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

答案 1 :(得分:0)

这应该在最后一次之前抓住任何东西!在捕获组中,以及在其他捕获组中的所有内容

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