0

大家好,我有下一条短信:

</form>onclick="g(null,null,'.htaccess','touch')">Touch</a> <br><br><pre class=ml1>
DirectoryIndex index.php
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</pre></div>

我尝试解析所有内容:<pre class=ml1>-</pre></div>

string con = Regex.Match(content, @"<br><br><pre class=ml1>(.*?)</pre></div>", RegexOptions.Multiline).Groups[1].Value;`

但它不起作用。为什么?

4

2 回答 2

1

你需要

RegexOptions.Singleline

所以.匹配每个字符,包括换行符。

你不需要RegexOptions.Multiline,因为你没有使用^or $。(多行模式使它们匹配一行的开头和结尾,而不是输入字符串的开头和结尾。)

于 2013-01-27T19:26:18.713 回答
0

您的代码的唯一问题是您使用了应该是 Regex.SingleLine 的 Regex.MultiLine

string con = Regex.Match(content, "<br><br><pre class=ml1>(.*?)</pre></div>", RegexOptions.Singleline).Groups[1].Value;

RegexOptions.MultiLine

多行模式。更改 ^ 和 $ 的含义,使其分别匹配任何行的开头和结尾,而不仅仅是整个字符串的开头和结尾。

正则表达式选项.SingleLine

指定单行模式。更改点 (.) 的含义,使其匹配每个字符(而不是除 \n 之外的每个字符)。

于 2013-01-27T19:26:49.307 回答