用于从特定xml标记内删除不必要的文本的正则表达式

时间:2016-07-13 17:25:08

标签: regex notepad++

我有一个带有XML语句的文件:

<rdfs:label>(mild) (585.2)</rdfs:label>

如何删除parantheses之间的文本,而不是数字,以便读取数据:

<rdfs:label>(585.2)</rdfs:label>

rdfs:label中的数字可以是整数,最多两位的小数,或由整数,小数或两者的组合组成的范围。

我尝试了以下正则表达式,但它似乎没有正常工作:

<rdfs:label>?([0-9]*)
\(\1

我只是咬了一口子并编写了一个java方法来处理不规则数据。

2 个答案:

答案 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));
                            }
                        }
                    }
                }
            }