LookBehind正则表达式的语法

问题描述 投票:0回答:1

我需要一个正则表达式,它将匹配'xmlAttributeReplace ='和大括号后面的引号。然后我用空字符串替换这些匹配。

样本输入是

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

我目前有以下内容

xmlAttributeReplace="|(?<=})"

我的问题是如何在花括号后找到引号不正确。应该寻找背后的外观

  1. xml属性替换=
  2. 引号和xml之间没有空格Attribute Replace =

在正则表达式中是否有一位大师可能知道正确的语法?

regex
1个回答
1
投票

如果要删除属性和值,则应使用:

xmlAttributeReplace="[^" ]+"

[^" ]+简单的意思是“匹配不是空格或引号的字符”。你可以更文字,并匹配\#\{[\w.]+\}

如果要保留值但删除属性和结束引用,最简单的方法是捕获值:

xmlAttributeReplace="([^" ]+)"

并用$1取代。

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

请注意,这里不需要lookbehind,也不需要正则表达式大师。 当然,可能需要注意的是,您将XML与正则表达式相匹配 - XML可能很复杂,并且包含注释,换行符,单引号,转义字符等。

© www.soinside.com 2019 - 2024. All rights reserved.