正则表达式删除字符前字符串中间的空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式删除字符前字符串中间的空格相关的知识,希望对你有一定的参考价值。

我想从下面的字符串中捕获“Some Company Name”

@@VALUE= Some Company Name            @@

但是在最后的@@之前没有尾随空格。

我收到这个数据作为管道,所以我试图在Perl中使用正则表达式替换这个部分,所以最终的结果看起来像:

@@VALUE=Some Company Name@@

我可以匹配公司名称前面的前导空格,但我对公司名称的匹配始终是:

"Some Company Name            "

目前使用此正则表达式:

(@@VALUE=)(s)([^@]*)

如果不是最后的@@,删除尾随空格很容易。

答案

如果你想在最后的@@之前删除所有空格,那就是

s/s+@@$/@@/;

我不确定为什么你需要匹配任何其他东西。

另一答案

试试Regex:s+(?=@@$)

Regex Demo

Perl Demo

另一答案

或使用perl正则表达式懒惰模式

$s = '@@VALUE= Some Company Name       @@'
$s =~ s/@@VALUE=s*(.+?)s*@@s*$/$1/
print $s

以上是关于正则表达式删除字符前字符串中间的空格的主要内容,如果未能解决你的问题,请参考以下文章

正则去除字符串前后中间空格

正则去除字符串前后中间空格

正则-元字符 注意正则表达式中间不要随意加空格

Pyspark SparkSQL 正则表达式在空格前获取子字符串

前导和尾随空格剪切 + 中间空格替换

RX学习笔记:正则表达式