我有字符串值,因为我只需要获取没有逗号或分号的文本,如下面的示例输入:
<LINE>002:OR,004:0001,002:01,007:SCEM_02,000:, 002:PC;/</LINE>
我的输出应该是这样的:
OR 0001 01 SCEM_02 PC
(ie) 不用任何逗号、分号、冒号。
为此,我需要使用什么功能?等待你的回复。
问候, 喜悦
在python中使用正则表达式
import re
re.findall(r'.*(:[\w]+,?)+', "<LINE>002:OR,004:0001,002:01,007:SCEM_02,000:, 002:PC;/</LINE> ");
希望有帮助!!!
解决方案是单行:
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