我有一个带有XML语句的文件:
<rdfs:label>(mild) (585.2)</rdfs:label>
如何删除parantheses之间的文本,而不是数字,以便读取数据:
<rdfs:label>(585.2)</rdfs:label>
rdfs:label中的数字可以是整数,最多两位的小数,或由整数,小数或两者的组合组成的范围。
我尝试了以下正则表达式,但它似乎没有正常工作:
<rdfs:label>?([0-9]*)
\(\1
我只是咬了一口子并编写了一个java方法来处理不规则数据。
答案 0 :(得分:1)
此regex
的第一个捕获组获取第一组括号以及它们之间的任何内容,具有以下空格。
<.*>(\(.*\)\s)
答案 1 :(得分:0)
以下是我用来解决此问题的java方法
String methodName(String a){
for(int i = 0; i < a.length(); i++){
if(a.charAt(i) == '('){
if(Character.isDigit(a.charAt(i+1)) || (a.charAt(i+1) == 'V' && Character.isDigit(a.charAt(i+2))) || (a.charAt(i+1) == 'E' && Character.isDigit(a.charAt(i+2)))){
for(int v = i; v < a.length(); v++){
if(a.charAt(v) == ')'){
return(a.substring(i+1,v));
}
}
}
}
}