java regex- 获取之前没有特定单词的特定索引

java regex- get specific index where not have a specific word before

我试图在 xml 字符串的特定位置添加双引号。

这里是xml内容的例子

    <opr:sec name=display>
     <opr:fld name=fieldName>Value1</opr:fld>
     <opr:fld name=someName>value2</opr:fld>

我需要添加双引号,例如:name="fieldName" 并且每一行的字段名称都不同。

第一个双引号很简单,使用需要在

之前的 name=

但是对于结束双引号,我想使用 > 符号,但需要避免在结尾处使用 fld

我如何对

之前没有特定文本的字母进行正则表达式

这里有一个更简单的方法来做你想做的事。
使用这个正则表达式:
name=([^>]*)>
并将其替换为:
name="">

您可以使用捕获块,将您的线分成 3 个块并从碎片中重建它:

String line = "<opr:fld name=fieldName>Value1</opr:fld>";
String regex = "(.*name=)(.*)(>.*>)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(line);
matcher.matches();
String result = matcher.group(1) + "\"" + matcher.group(2) + "\"" + matcher.group(3);
System.out.println(result);