我有一个如下列表:
tttttttttttyyyyyyyyyyyyyy 28758.gif: 100.00%
tttttttttttyyyyyyyyyyyyyy 28759.gif: 98.92%
tttttttttttyyyyyyyyyyyyyy 28760.gif: 100.00%
tttttttttttyyyyyyyyyyyyyy 28761.gif: 98.54%
tttttttttttyyyyyyyyyyyyyy 28762.gif: 100.00%
tttttttttttyyyyyyyyyyyyyy 28763.gif: 98.85%
tttttttttttyyyyyyyyyyyyyy 28764.gif: 100.00%
tttttttttttyyyyyyyyyyyyyy 28765.gif: 99.91%
tttttttttttyyyyyyyyyyyyyy 28766.gif: 100.00%
tttttttttttyyyyyyyyyyyyyy 28767.gif: 100.00%
tttttttttttyyyyyyyyyyyyyy 28768.gif: 100.00%
tttttttttttyyyyyyyyyyyyyy 28834.gif: 100.00%
tttttttttttyyyyyyyyyyyyyy 28835.gif: 100.00%
以下正则表达式为包含 低于 100.00% 的百分比数字的所有行添加书签:
\b\d{2}\.\d{2}\b%
现在我需要一个正则表达式来为所有行添加书签,包括低于 100.00% 的百分比数字和目标行之后的两行以下正则表达式可以为我的目标行以及目标行后的一行添加书签:
(?-s)(^.+\R?)\b\d{2}\.\d{2}\b%(?:\R^.+)?
我尝试了以下正则表达式,但失败了:
(?-s)(^.+\R?)\b\d{2}\.\d{2}\b%(?:\R^.+)?(?:\R^.+)
我的正则表达式问题出在哪里?
100.00%
。
unmatched tttttttttttyyyyyyyyyyyyyy 28758.gif: 100.00%
matched tttttttttttyyyyyyyyyyyyyy 28759.gif: 98.92%
consumed tttttttttttyyyyyyyyyyyyyy 28760.gif: 100.00%
consumed tttttttttttyyyyyyyyyyyyyy 28761.gif: 98.54%
unmatched tttttttttttyyyyyyyyyyyyyy 28762.gif: 100.00%
请注意,第四行不匹配,因为您的正则表达式由于 “目标行后两行” 规则而消耗了它。
有两种方法可以修复它。1.将
(?-s)(^.+\R?)\b\d{2}\.\d{2}\b%(?=((?:\R^.+){2}))
100.00%
的行
(?-s)(^.+\R?)\b\d{2}\.\d{2}\b%(?:\R^(?!.*\b\d{2}\.\d{2}\b%).+){1,2}