2017-12-18 175 views
0

我需要一個匹配'xmlAttributeReplace ='和大括號後面的引號的正則表達式。然後我用空字符串替換這些匹配。LookBehind正則表達式的語法

樣品輸入

<autoUnlockSection xmlAttributeReplace="#{token.variable.sample}" 
    xdt:Transform="Replace"/> 

目前,我有以下

xmlAttributeReplace="|(?<=})" 

我的問題是我如何找到引用下面的花括號是不正確。外觀背後應該尋找

  1. xmlAttributeReplace =
  2. 報價和xmlAttributeReplace =

是否有大師在這裏正則表達式誰可能知道正確的語法之間沒有空格?

+2

您正在使用哪種編程語言? – Allan

+0

爲什麼在使用正則表達式時它更簡單,更簡單,更可靠,更不容易出錯,無法使用現有的XML解析器? – ikegami

回答

1

如果你想刪除的屬性和價值,你應該使用:

xmlAttributeReplace="[^" ]+" 

[^" ]+簡單平均「匹配字符不是空格或報價」。你可以更直接地匹配\#\{[\w.]+\}

如果你想保留的價值,但刪除屬性和關閉報價,最簡單的方法是捕捉值:

xmlAttributeReplace="([^" ]+)" 

$1取代。

工作例如:https://regex101.com/r/tEOJwh/2

請注意,您不需要lookbehind這裏,也不是一個正則表達式大師。
當然,可能的注意事項是您將XML與正則表達式匹配 - XML可能很複雜,並且包含註釋,換行符,單引號,轉義字符等。