2010-11-26 111 views
1

能someon請告訴我它匹配一切都像一個正則表達式:image.php類型= regcheck & imagehash=3d600fe2ad3c87c9b22ade7e58ef1c48快速正則表達式問題

這個字符串包含在一個頁面的源代碼.. 感謝。 :)

編輯:這裏是所在的地方:

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

你有什麼這麼遠嗎?你在使用哪種引擎/環境?你期望人們做你的工作嗎? – Lucero 2010-11-26 23:58:14

+2

1.不要使用正則表達式解析(X | X?HT)?ML。使用工作解析器。如果它值得它的鹽,它也可以讓你更容易地刮頁面。 2.您的規格不存在。 `。*`符合你的例子,但它不是你想要的。 3.見Lucero。 – delnan 2010-11-26 23:59:25

+0

字符串的哪部分是可變的?你想保存或更改哪部分? – 2010-11-26 23:59:32

回答

3

如果哈希是變化的唯一的事情,你有.*替換它,並逃脫所有現有.?\因爲它是一個正則表達式特殊字符...等等,是這樣的:

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

還要注意的是.*可以「貪婪」,走投入太多 - 我不知道你在用正則表達式解析什麼(SOM文本電子部分將幫助),但也許明星後空單會做的伎倆......

編輯:基於您的評論,正則表達式歸結爲:

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

"屬於正則表達式,如:

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

我認爲你需要一個分析器,但因爲你沒有指定任何語言,這裏有一個正則表達式來MATC那個。

我不確定您是否嘗試僅匹配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;', '&')