0

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

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

我的输出应该是这样的:

OR 0001 01 SCEM_02 PC

(ie) 不用任何逗号、分号、冒号。

为此,我需要使用什么功能?等待你的回复。

问候, 喜悦

4

2 回答 2

1

在python中使用正则表达式

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

希望有帮助!!!

于 2012-06-26T05:15:52.260 回答
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
于 2012-06-27T01:06:34.350 回答