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

Regex matching all but last occurence of character

我正在尝试将匹配特定字符(比如感叹号 !)的所有匹配项的正则表达式组合到一个组中,然后将其他所有内容组合到另一个组中组.

示例:

a!1

一个!!1

a!1!a!!a

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

理想情况下,我希望所有这些都在

中实现

谢谢, 斯蒂沃

这应该能赶上最后一个!在一个捕获组中,之后的所有内容都在另一个捕获组中

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

此处匹配测试inputs/outputs http://www.myregextester.com/index.php