0

我正在尝试使用正则表达式解析文件位置,但是当我使用正则表达式时我得到了额外的字符。我要解析的行是

 A HREF="/MISO/getEQRFile;jsessionid=1JgnSTXhgvbpSYLVhp3h4ZpGltNpphxr1ncwlGnK3YXsh2phxKh9!794217179?entity=WEPM&nodeId=key0">EQR_WEPM_20131001_123354_M_082013.zip</a></b></td>

我需要引号之间的文字。目前我正在使用

^.+?<A\s*?HREF\s*?=\W(.+?.+?>) but it gives me the value 

match.Groups[1].Value: /MISO/getEQRFile;jsessionid=1JgnSTXhgvbpSYLVhp3h4ZpGltNpphxr1ncwlGnK3YXsh2phxKh9!794217179?entity=WEPM&nodeId=key0">

最后是一个额外的“>”。如果有人可以帮助我,我将不胜感激。

4

2 回答 2

0

您可以使用正则表达式替换命令并使用:

(<A\s*?HREF\s*?=\W(.+?.+?>))([^<]*)(</a\s*>)

替换为第三组(文件名本身)

\3
于 2013-10-07T20:52:34.807 回答
0

您的正则表达式肯定很奇怪...请注意,如果您尝试解析 HTML,则应使用正确的 HTML 解析器。

你的正则表达式有什么问题是你>在捕获中,所以它会得到任何内容>

尝试使用否定类:

^.+?<A\s*?HREF\s*?="([^"]+)"

或者,如果您有单引号和/或双引号:

^.+?<A\s*?HREF\s*?=(["'])(.*?)\1>

并使用match.Groups[2].Value.

于 2013-10-07T20:38:30.413 回答