2014-07-03 245 views
1

我正在嘗試使用http://www.regexr.com/來創建正則表達式。這個正則表達式爲什麼匹配這麼多?

基本上我尋找替代匹配<Openings>any other tags/text</Openings>

<Openings><opening><item><x>3</x><y>3</y><width>10.5</width><height>13.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening></Openings> 

我開始與([\<Openings\>])\w+http://regexr.com/393mv)的東西,但它似乎是相匹配的東西太多了。現在正則表達式只能匹配<Openings>

+1

因爲你用'[]'。當你寫'[你好]'時,你的正則表達式引擎會將它解釋爲「括號內的任何字符」,即它將匹配任何字符,可以是h,e,l或o。如果你想匹配確切的單詞或句子,只需刪除括號 – Aserre

回答

1

正則表達式匹配整個開口標籤,

<Openings>.*?<\/Openings> 

如果你想捕捉開口標籤裏面的內容,然後嘗試以下,

<Openings>(.*?)<\/Openings> 
+0

我會認爲更有用的表達會有()圍繞。*?不是標籤本身? – Joe

+0

但他不希望標籤之間的文字。他想匹配整個。 –

+0

我試過了,它沒有匹配任何東西。 – AllisonC

0
([\<Openings\>])\w+ 

括號表示 「匹配了任何字符」。您應該使用

(\<Openings\>)\w+ 

特別匹配"<Openings>"加一個或多個單詞字符。

+0

我只希望它匹配,直到我不希望它匹配之前或之後的任何東西 AllisonC

相關問題