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);
我试图在 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);