我有字符串值,因为我需要只获得没有逗号或分号的文本,如下面的示例输入:
<LINE>002:OR,004:0001,002:01,007:SCEM_02,000:, 002:PC;/</LINE>
我的输出应该是:
OR 0001 01 SCEM_02 PC
(即没有任何逗号,分号,冒号)。
为此我需要使用哪种功能?等待你的回复。
此致 喜悦
答案 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