^,$何时在正则表达式中使用此符号?

时间:2014-03-31 10:09:41

标签: c# .net regex

    Owner
                      Owner: ABC
                     Address: XYZ            
    Information

这是我想要匹配的模式。我想匹配所有者和信息之间的详细信息,但使用正则表达式排除标题,

(?<=(\s*Owner))(.|\n)*?(?=\s*Information)

当我尝试将^$添加为更准确时,它不匹配。

(?<=(/^\s*Owner))(.|\n)*?(?=\s*Information/$)

你能帮助我吗?

1 个答案:

答案 0 :(得分:5)

你没有提供足够的细节。由于您的第一个表达式正在运行,我假设您使用的是Singleline模式。

我的下一个假设是,此字符串只是较大字符串的一部分。

^匹配默认字符串的开头

$默认匹配字符串的结尾

现在,由于您的字符串包含之前和之后的内容,因此您需要更改此默认行为:

使用修饰符Multiline^匹配行的开头,$匹配行的结尾。有关详细信息,请参阅documentation

所以,你的正则表达式应该是这样的:

Regex regx = new Regex("(?<=^(\s*Owner))(.|\n)*?(?=\s*Information$)", RegexOptions.Singleline | RegexOptions.Multiline);