我需要一个正则表达式,以便可以从String中提取一部分。我通过使用DOM解析XML文档来获得此字符串。然后,我在此字符串中寻找“§regex”部分,现在尝试提取其值。例如,其余部分为“(([A-ZÄÖÜ] {1,3} [-] [AZ] {1,2} [1-9] [0-9] {0,3})”。
问题是,我不知道如何确保提取的部分以“)”结尾。此正则表达式需要为给定的每个值工作。目标是仅将“§regex=“之后的括号中的值(包括方括号)写入字符串。
<UML:TaggedValue tag="description" value=" random Text §regex=([A-ZÄÖÜ]{1,3}[- ][A-Z]{1,2}[1-9][0-9]{0,3}) random text"/>
private List<String> findRegex() {
List<String> forReturn = new ArrayList<String>();
for (String str : attDescription) {
if (str.contains("§regex=")) {
String s = str.replaceAll(regex);
forReturn.add(s);
}
}
return forReturn;
}
attDescription是一个列表,其中包含在解析的XML文档中找到的所有属性。
到目前为止,我已经尝试过此正则表达式:".*(§regex=)(.*)[)$].*", "$2"
但这会切断“)”并且不会删除搜索到的部分前面的文本。即使有了这个http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html的帮助,我还是真的不明白如何获得所需的东西。
如果我用它代替 String s = str.replaceAll(regex);
String s = str.replaceAll( ".*§regex=(\\(.*\\)).*", "$1" );
它只是在寻找用括号括起来的子字符串§regex=
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句