如何反转正则表达式的结果

时间:2016-11-17 05:13:59

标签: regex

我有一个包含以下记录的文件:

1 "The number one" 0.1 111 "one" .1 "uno" "UNO!" "#ONE"
2 "El numero dos" 2.0 222 "The number two" 2.02 "two" "TWO!" "#DOS"

我需要用逗号替换数字和字符串之间的空格,以便将此文件作为结果:

1,"The number one",0.1,111,"one",.1,"uno","UNO!","#ONE"
2,"El numero dos",2.0,222,"The number two",2.02,"two","TWO!","#DOS"

我创建了一个相反的正则表达式,它获取了数字和字符串:

(?:\"[ !\x23-\xFF]*\"|[\d.])

如何反转正则表达式的结果?你能帮我创建一个能完全符合我需要的正则表达式吗?

更新1

该文件可能包含字符串中的特殊字符,字符串和数字的顺序(可以是十进制)是可变的。

2 个答案:

答案 0 :(得分:0)

在Notepad ++中,以下工作原理:

<强>查找

("|\d)\s("|\d)

<强>替换

$1,$2

答案 1 :(得分:0)

试试这个:

(?:\.|\d)(\s)\"|\"(\s)(?:\.|\d)

将第1组和第2组替换为,

演示:https://regex101.com/r/H3dFFa/2

这个正则表达式似乎也抓住了空间:

[\.\d"](\s)[\.\d"]?

仅替换第1组

演示:https://regex101.com/r/H3dFFa/3