我的测试用例是:this is a sentence. reviewed: name DEFECT: none
我需要在reviewed:
之后捕获任何内容,但在看到DEFECT:
reviewed: (.+)(?=\sTASK|\sDEFECT)
正确捕获name
。但问题是匹配后没有DEFECT:
,比如
this is a sentence. reviewed: name
不匹配。将正则表达式更改为
时reviewed: (.+)(?=\sTASK|\sDEFECT)?
或
reviewed: (.+)(?=\sTASK|\sDEFECT)*
匹配捕获所有name DEFECT: none
。看到单词DEFECT:
后我应该使用什么来阻止匹配,但同时该单词可能根本不存在?
我也试过以下但没有运气:
reviewed: (.+)?(?=\sTASK|\sDEFECT)?
^
让它变得非贪婪。有人可以帮忙吗?
答案 0 :(得分:2)
在这种情况下,您可以将字符串的结尾与$匹配,如下所示:
/reviewed: (.+?)(?=DEFECT:|$)/