Owner
Owner: ABC
Address: XYZ
Information
这是我想要匹配的模式。我想匹配所有者和信息之间的详细信息,但使用正则表达式排除标题,
(?<=(\s*Owner))(.|\n)*?(?=\s*Information)
当我尝试将^
和$
添加为更准确时,它不匹配。
(?<=(/^\s*Owner))(.|\n)*?(?=\s*Information/$)
你能帮助我吗?
答案 0 :(得分:5)
你没有提供足够的细节。由于您的第一个表达式正在运行,我假设您使用的是Singleline
模式。
我的下一个假设是,此字符串只是较大字符串的一部分。
^
匹配默认字符串的开头
$
默认匹配字符串的结尾。
现在,由于您的字符串包含之前和之后的内容,因此您需要更改此默认行为:
使用修饰符Multiline
,^
匹配行的开头,$
匹配行的结尾。有关详细信息,请参阅documentation。
所以,你的正则表达式应该是这样的:
Regex regx = new Regex("(?<=^(\s*Owner))(.|\n)*?(?=\s*Information$)", RegexOptions.Singleline | RegexOptions.Multiline);