使用正则表达式从字符串中删除空格

时间:2014-12-16 08:20:56

标签: regex

我可以在以下字符串中找到空格:

  

“____来自ABC的输入”<<请注意,此字符串的开头有4个空格

使用此正则表达式:

[a-z] [a-z]

如何将“t f”替换为“tf”,将“m A”替换为“mA”?我想我必须使用团体,但我不记得如何。任何意见,将不胜感激。

P.S。请注意,字符串开头有4个空格我不想删除它们。

6 个答案:

答案 0 :(得分:3)

只需使用\s并替换为空字符串""即可。您也可以使用文字空间,它也可以完美地工作。请记住使用全球旗帜。

即,使用/\s/g/ /g并替换为""


关于您的更新,您仍然可以使用上面的正则表达式,然后只需在字符串中添加四个空格,这非常有效。如果你仍然想要一个正则表达式,你可以使用

(?<=\w)\s(?=\w)

并替换为""(空字符串)

答案 1 :(得分:1)

使用正则表达式:s / \ s // g 这应该适用于perl。

echo "Input from ABC"|perl -pe 's/\s//g'
>InputfromABC

答案 2 :(得分:1)

根据您使用的语言,您应该有“替换”功能

您必须使用捕获组,如下所示:

([a-z]) ([a-z])

http://www.regular-expressions.info/refcapture.html

然后使用该函数将它们恢复为您想要的模式:

newString = oldString.replace("([a-z]) ([a-z])", "\1\2")

\ X引用第X个括号组

答案 3 :(得分:1)

您可以使用下面的(*SKIP)(*F)

^\s+(*SKIP)(*F)|\s

然后用空字符串替换匹配的空格。

答案 4 :(得分:1)

在正则表达式中,你不能将值替换为另一个,你可以检测某些字符或你在表达式中放置的任何内容,之后你可以在检测到该字符时进行替换。

 [a-z]+\\s

上面的表达式将检测到空格,之后您可以决定替换字符串

答案 5 :(得分:1)

最好的办法是搜索:

(^\s+)|\s+

并用$1替换,这样字符串开头的空格就会保留。在这里演示:

https://regex101.com/r/qQ9dL9/1