2010-08-12 21 views
2

我有一些包含螢火蟲隱藏div的標記。 (長話短說,包括隱藏的螢火蟲div的,YUI RTE發表內容回是被激活)正則表達式來獲取具有特定ID的整個div?

所以,在我上傳的內容我有多餘的div我將在PHP中刪除服務器端:

<div firebugversion="1.5.4" style="display: none;" id="_firebugConsole"></div> 

我似乎無法得到正則表達式的句柄,我需要編寫匹配這個字符串,銘記它不會總是那個確切的字符串(版本可能會改變)。

歡迎所有幫助!

+0

考慮的最後一個:'

' – 2010-08-12 12:30:42

+0

也考慮:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2010-08-12 12:45:11

回答

2

正則表達式是不是做這項工作的最佳工具,但你可以嘗試:

<div firebugversion=[^>]*></div> 

[…]character class。類似於[aeiou]的東西匹配任何一個小寫元音。 [^…]否定字符類。 [^aeiou]匹配之間的任何內容,但之間的小寫元音。

*是零或多repetition。因此,[^>]*匹配除了>之外的任何序列。

如果你要定位的id具體情況,你可以嘗試:

<div [^>]*\bid="_firebugConsole"[^>]*></div> 

\bword boundary錨。

1

我建議這樣的:

\<div firebugversion="(.+)" style="(.+)" id="(.+)"\> 

然後你有三組:

  1. firebugversion
  2. 風格
  3. ID
+0

'<' and '>'不需要轉義。 – 2010-08-12 12:31:25

2

匹配這個表達式 -

<div.*id="_firebugConsole".*?/div> 
1

這一個是有點複雜,而且很可能並不完美,但它會:

  • 匹配包含屬性firebugversion
  • 匹配的firebugversion屬性無論哪個訂單屬性出現在任何的div標籤
  • 匹配div,即使它包含它與其結束標籤之間的內容或間距(我已經看到了螢火蟲標籤與& nbsp;它裏面標記之前)。注意:它懶惰匹配,因此將下一個標籤只匹配,而不是找到文檔中

<(div)\b([^>]*?)(firebugversion)([^>]*?)>(.*?)</div>

相關問題