2012-12-30 19 views
0

不匹配。如果字符串包含我做了這個正則表達式的特定文本

我的問題是如何,如果它包含dontwantthis字符串不匹配的情況下,一個字符串?

+0

你的客戶寫了什麼? – hd1

+0

@ hd1對不起,它的'PHP 5.4'。 – Scott

+0

**不要使用正則表達式來解析HTML **。您無法可靠地使用正則表達式解析HTML。只要HTML從你的期望改變,你的代碼就會被破壞。有關如何使用PHP模塊正確解析HTML的示例,請參閱http://htmlparsing.com/php.html。 –

回答

1

看來你正在使用正則表達式提取span元素的內容。現在,儘管allreasons爲什麼this is not這樣一個好主意......

...只是保持你有的表達。然後,如果您有匹配項,請過濾掉應該被拒絕的匹配條目。例如,

var $match = extractContentFromHtml($html); // use regex here, return false if no match 
if ($match && validMatch($match)) { 
    // do something 
} 

其中validMatch(string)應該檢查值是否存在於某個數組中。

+0

嗯,我明白了你的觀點,但在這種情況下,我並不需要關心[X] HTML格式或其他什麼,因爲只有''標籤會發生變化 - 我真的不知道解析數百個結果與附加函數,當正則表達式(據我所知)可以排除某些結果,如果文本確實包含一個指定的字符串。有一些條件已經存在,爲什麼另一個簡單的可能會威脅? – Scott

+0

我不確定從原始輸入中提取什麼內容。如果它只是一些簡單的'span' HTML字符串(而不是整個HTML文檔),那就夠了。如果它是一個很大的HTML塊,你應該解析它並從跨度中提取文本節點,然後收集它們。無論如何,AFAIK,正則表達式意味着匹配的東西,而不是相反的,它不僅在心理上更安全,它分兩步完成,它會更清晰,更可維護:) –

3

你可能下面通過一個匹配循環來你的正則表達式。在這種情況下,只需檢查dontwantthis子字符串和continue是否最簡單。試圖在正則表達式中實現它只是要求麻煩。

+0

您能解釋一下更多關於這種情況下的「麻煩」嗎?我正在學習正則表達式,只是好奇。 – Scott

+0

你見過一個電子郵件的正則表達式嗎? [This](http://www.regular-expressions.info/email.html)就是當有人嘗試用正則表達式完成所有事情時所產生的東西。 –

相關問題