给定一个字符串,仅包含0
和1
,用空格分隔,每行末尾有一个额外的空格。
我想只选择数字之间的空格而不是行末尾的空格来搜索并用,
替换它们。
当我尝试创建一个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])
答案 0 :(得分:3)
您可以使用以下内容仅匹配数字之间的空格而不是数字:
(?<=\d)\s(?=\d) or (?<=[01])\s(?=[01]) if your digits are either 0 or 1
并替换为,
请参阅DEMO
答案 1 :(得分:2)
如果您确定自己的文字仅包含1
和0
,则可以使用此
正则表达式(?!$)
正则表达式开头有space
个字符
检查此Demo
如果你不确定你可以使用这个(?<=\d) (?=\d)
,但这只有在前瞻和后面支持的情况下才会起作用,我不知道你正在使用哪种语言,这个是PERL
正则表达式
检查Demo
答案 2 :(得分:0)
要选择任一方都有数字的组,您可以使用:
\d( )\d
在这种情况下,匹配组1将包含空格。或者您可以通过捕获两个数字并只插入逗号来替换整个组,
(\d) (\d)
提取第1组和第2组并在它们之间加上逗号可以正常工作。