2016-07-13 32 views
-1

我有以下的正則表達式,它發現了我的部分解決方案:無法獲取正則表達式來工作((=(< /))(*)(:??>?))

((?=(<\/))(.*?)(?:\>)) 

鑑於以下行:

</EventSubType><OrgUnitNm>###</OrgUnitNm></test:CommonAttributes><ProductArrangementBasic><ProductId>####</ProductId></part:Asking> 

正則表達式將會給我:

</EventSubType></OrgUnitNm></test:CommonAttributes></ProductId></part:Asking> 

我只想:

</test: </part: 

任何幫助將是偉大的。

謝謝。

+2

不要用正則表達式解析xml/html。使用DOM引擎。 –

+0

這篇文章的答案真的有幫助! http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –

+2

你明確地要求任何字符直到'>'。嘗試'<\/\ \ w +:' –

回答

1

注意:如果您解析HTML,最好使用專用庫。

我懷疑你正在使用PCRE /U標記的正則表達式,如/((?=(<\/))(.*?)(?:\>))/U

如果你想獲得公正</test:</part:,你可以使用一個更簡單的正則表達式:

/<\/\w+:/ 

regex demo

詳細

  • < - 字面<
  • \/ - 字面: - 字面/
  • \w+ - 從[a-zA-Z0-9_]範圍
  • : 1以上字符。