我试图找出如何写下面的正则表达式:条件捕获
假设我可以有两种类型的字符串来检查,找到“值”:
字符串1:CONST1:CONST2:CONST3:value
和
字符串2:CONST1:CONST2:CONST4:value-12345
对于STRING1这种模式会做
CONST1:CONST2:(CONST3|CONST4):(.*)
其中我捕获第二组。但我还需要处理“价值”后面跟着短划线和其他一些值的情况。 我试着这样说:
CONST1:CONST2:(CONST3|CONST4):(.*)(-.*)?
但随后第二组(.*)
将捕获字符串2一切,包括以下破折号+值2(12345)。使它(.*?)
也不会工作,因为string1组2将返回空字符串。
任何人都可以指出我应该寻找什么方向来寻找解决方案吗?我应该深入了解前瞻还是后顾之处,或者有更简单的解决方案?
在此先感谢。
谢谢你,为我工作。 – dty