我需要一个正则表达式,它将匹配'xmlAttributeReplace ='和大括号后面的引号。然后我用空字符串替换这些匹配。
样本输入是
<autoUnlockSection xmlAttributeReplace="#{token.variable.sample}"
xdt:Transform="Replace"/>
我目前有以下内容
xmlAttributeReplace="|(?<=})"
我的问题是如何在花括号后找到引号不正确。应该寻找背后的外观
在正则表达式中是否有一位大师可能知道正确的语法?
如果要删除属性和值,则应使用:
xmlAttributeReplace="[^" ]+"
[^" ]+
简单的意思是“匹配不是空格或引号的字符”。你可以更文字,并匹配\#\{[\w.]+\}
。
如果要保留值但删除属性和结束引用,最简单的方法是捕获值:
xmlAttributeReplace="([^" ]+)"
并用$1
取代。
工作示例:https://regex101.com/r/tEOJwh/2
请注意,这里不需要lookbehind,也不需要正则表达式大师。 当然,可能需要注意的是,您将XML与正则表达式相匹配 - XML可能很复杂,并且包含注释,换行符,单引号,转义字符等。