请建议一个正则表达式来从下面的输入文本中捕获它:
Match 0:"Modifications made by ... on2011/07/13 06:17:32 from database
keyword: zzzz--> mmmmmm
total_effort: --> 0.00
tmp__effort: --> 0
resolver"
Match 1:"Modifications made by ... on2011/07/13 06:19:32 from database
resolver"
输入文字:
Modifications made by... on 2011/06/21 14:09:14 from database
problem_description: (text value has changed)
Modifications made by ... on2011/07/13 06:17:32 from database
keyword: zzzz--> mmmmmm
total_effort: --> 0.00
tmp__effort: --> 0
resolver: y --> x
total_t_effort: --> 0.00
Modifications made by ... on2011/07/13 06:19:32 from database
resolver: x --> z
total_t_effort: --> 0.00
我试过使用这个 modifications\smade\sby(.|\n)+?resolver
但它给了我不正确的输出:
Match 0:"Modifications made by... on 2011/06/21 14:09:14 from database
problem_description: (text value has changed)
Modifications made by ... on2011/07/13 06:17:32 from database
keyword: zzzz--> mmmmmm
total_effort: --> 0.00
tmp__effort: --> 0
resolver"
Match 1:"Modifications made by ... on2011/07/13 06:19:32 from database
resolver"
使用的选项:IgnoreCase + MultiLine
有人可以帮忙吗?
谢谢!
最佳答案
如果你想为此使用正则表达式,它会变得有点复杂。
尝试
^modifications\smade\sby(.(?!modifications))+?resolver
我删除了 \n
并使用了 Singleline option 代替。
想法是,匹配每个字符直到下一个“解析器”,但前提是该字符后面没有“修改”。因此,我使用了负先行 .(?!modifications)
。
关于c# - 你能建议一个正则表达式来捕获这段文字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7564813/