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

3

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

"____ABC输入" << 请注意此字符串开头有4个空格

使用以下正则表达式:

[a-z] [a-z]

我该如何将“t f”替换为“tf”,“m A”替换为“mA”?我猜我需要使用组,但我不记得怎么做了。任何建议都将不胜感激。
注:请注意字符串开头有4个空格,我不想删除它们。
6个回答

3
只需使用 \s 并将其替换为空串 ""。您也可以使用字面上的空格,这也能完美地工作。只需记得使用全局标志。 换句话说,使用/\s/g/ /g 并用 "" 替换。
关于您的更新,仍然可以使用上述正则表达式,然后只需将四个空格添加到字符串中,这非常有效。如果您仍然想要一个正则表达式,则可以使用:
(?<=\w)\s(?=\w)

将其替换为""(空字符串)。

1
根据您使用的语言,您应该有一个“replace”函数。您需要使用捕获组,像这样:
([a-z]) ([a-z])

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

然后使用该函数以所需的模式获取它们的返回结果:
newString = oldString.replace("([a-z]) ([a-z])", "\1\2")

\X 参照第 X 组括号


1
在正则表达式中,你不能直接替换一个值为另一个值,你可以检测到特定的字符或者是任何你放在表达式中的内容,然后如果检测到该字符,你需要进行替换操作。
 [a-z]+\\s

以上表达式将检测到空格,然后您可以决定是否替换字符串。

1
使用正则表达式:s/\s//g 这应该适用于Perl。
echo "Input from ABC"|perl -pe 's/\s//g'
>InputfromABC

1
您可以像下面这样使用(*SKIP)(*F)
^\s+(*SKIP)(*F)|\s

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


1

最好的方法是搜索此内容:

(^\s+)|\s+

将其替换为$1,以便字符串开头的空格保留。此处演示:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接