从字符串中获取值

时间:2012-06-26 04:55:16

标签: java xml regex string

我有字符串值,因为我需要只获得没有逗号或分号的文本,如下面的示例输入:

<LINE>002:OR,004:0001,002:01,007:SCEM_02,000:, 002:PC;/</LINE> 

我的输出应该是:

OR 0001 01 SCEM_02 PC

(即没有任何逗号,分号,冒号)。

为此我需要使用哪种功能?等待你的回复。

此致 喜悦

2 个答案:

答案 0 :(得分:1)

使用正则表达式 在python中它本来是

import re
re.findall(r'.*(:[\w]+,?)+', "<LINE>002:OR,004:0001,002:01,007:SCEM_02,000:, 002:PC;/</LINE> ");

希望有所帮助!!!

答案 1 :(得分:0)

解决方案是单线:

input.replaceAll("(^|,|;).*?(:(?!,)|$)", " ").trim();

这是让正则表达式正确的问题。这个正则表达式基本上取代了空格“逗号/分号和冒号之间的所有内容,考虑了开始/结束问题”

这是一些测试代码:

public static void main( String[] args ) {
    String input = "<LINE>002:OR,004:0001,002:01,007:SCEM_02,000:, 002:PC;/</LINE>";
    input = input.replaceAll("(^|,|;).*?(:(?!,)|$)", " ").trim();
    System.out.println( input);
}

输出:

OR 0001 01 SCEM_02 PC