【发布时间】:2016-07-06 09:39:14
【问题描述】:
我正在尝试弄清楚如何编写以下正则表达式:
假设我可以有两种类型的字符串来检查和查找“值”:
string1:CONST1:CONST2:CONST3:value 和
string2:CONST1:CONST2:CONST4:value-12345
对于 string1 这个模式可以做
CONST1:CONST2:(CONST3|CONST4):(.*)
我捕获第二组的地方。但是我还需要处理“值”后面跟着破折号和其他一些值的情况。 我是这样尝试的:
CONST1:CONST2:(CONST3|CONST4):(.*)(-.*)?
但是第二组 (.*) 将捕获 string2 中的所有内容,包括后面的破折号 + value2 (12345)。将其设为(.*?) 也不起作用,因为 string1 group2 将返回空字符串。
谁能指出我应该向哪个方向寻找解决方案?我应该深入研究前瞻和后视还是有更简单的解决方案?
提前致谢。
【问题讨论】: