快速正则表达式问题

时间:2010-11-26 23:55:23

标签: c# html regex url

有人可以告诉我一个匹配所有内容的正则表达式:image.php?type = regcheck& imagehash=3d600fe2ad3c87c9b22ade7e58ef1c48

此字符串包含在页面源中.. 谢谢。 :)

编辑:这是它所在的位置:

<img id="imagereg" src="image.php?type=regcheck&amp;imagehash=3d600fe2ad3c87c9b22ade7e58ef1c48" alt="Registration Image" border="0" height="61" width="201">

2 个答案:

答案 0 :(得分:3)

如果散列是唯一不同的东西,则将其替换为.*,并使用.转义所有现有?\,因为它是正则表达式特殊char ...所以,像:

image\.php\?type=regcheck&imagehash=.*

另请注意.*可能是'贪婪'并且输入太多 - 我不知道你用正则表达式解析什么(文本的某些部分会有所帮助),但也许只有一个明星之后的空间可以解决问题...

编辑:根据您的评论,正则表达式归结为:

"image\.php\?type=regcheck&imagehash=.*"

"属于 in 正则表达式,如:

 string regexExpression = "\"image\.php\?type=regcheck&imagehash=.*\""

答案 1 :(得分:2)

我认为你需要一个解析器,但由于你没有指定任何语言,这里有一个匹配它的正则表达式。

我不确定您是否尝试匹配imagehash下的src或整个字符串。

所以我假设你正在尝试匹配src下的字符串:

<img id="imagereg" src="(.*?)" alt="Registration Image" border="0" height="61" width="201">

上述正则表达式会将src值与altborder等属性相匹配。但是,如果您想匹配所有 src标记中的所有 img值:

<img.*?src="(.*?)".*?>

在Python中,您可以执行m = re.search( .. )并按m.group(1)返回该组。 在Perl $source =~ / .. /中返回匹配组:$1

对于&符号,最好更换它,例如Perl:

$string =~ s/&amp;/&/g;

的Python:

string.replace('&amp;', '&')