RegEx选择两位数之间的空格

时间:2015-05-19 05:52:19

标签: regex

给定一个字符串,仅包含01,用空格分隔,每行末尾有一个额外的空格。
我想只选择数字之间的空格而不是行末尾的空格来搜索并用,替换它们。
当我尝试创建一个RegEx时,我也要选择所有空格或周围的数字。

GIVEN      WANTED     NOT WANTED     TOTALLY NOT WANTED
0 1 0 1    0,1,0,1    0,1,0,1,       ,,,,
0 0 1 0    0,0,1,0    0,0,1,0,       ,,,,
1 0 1 0    1,0,1,0    1,0,1,0,       ,,,,
1 1 0 0    1,1,0,0    1,1,0,0,       ,,,,
1 1 1 0    1,1,1,0    1,1,1,0,       ,,,,
1 1 0 0    1,1,0,0    1,1,0,0,       ,,,,

那么,我怎样才能选择两边都有数字的空格,而不是数字。是否存在匹配但不选择的某种语法功能?

工作答案:
由于多个答案都是正确的,我想在这里收集它们。接受的答案是第一个,因为它是最短的正则表达式,完全可以满足需要。

(?!$) - 请注意此正则表达式的开头有一个space
如果您的数字为0或1

,则为(?<=\d)\s(?=\d)(?<=[01])\s(?=[01])

3 个答案:

答案 0 :(得分:3)

您可以使用以下内容仅匹配数字之间的空格而不是数字:

(?<=\d)\s(?=\d) or (?<=[01])\s(?=[01]) if your digits are either 0 or 1

并替换为,

请参阅DEMO

答案 1 :(得分:2)

如果您确定自己的文字仅包含10,则可以使用此

正则表达式(?!$)正则表达式开头有space个字符

检查此Demo

如果你不确定你可以使用这个(?<=\d) (?=\d),但这只有在前瞻和后面支持的情况下才会起作用,我不知道你正在使用哪种语言,这个是PERL正则表达式

检查Demo

答案 2 :(得分:0)

要选择任一方都有数字的组,您可以使用:

\d( )\d

在这种情况下,匹配组1将包含空格。或者您可以通过捕获两个数字并只插入逗号来替换整个组,

(\d) (\d)

提取第1组和第2组并在它们之间加上逗号可以正常工作。