我需要从RSS供稿中删除一些数据。
它是出现在:之前的所有内容,最好是出现在之后的空格:
例:
您好:查理(Charlie)想知道如何从冒号后面和前面的一个空格中删除他身后的所有东西。我将始终在最后带有这个问号吗?
:和hello会匹配,但“Charlie说你好”不匹配
感谢所有拥有这些精彩知识并花时间回复的人。
最佳答案
用
^[^:]+:\s*
代替
^.+:\s*
这是它工作的一个示例:
perl -le 'my $string = q{Foo : bar baz}; $string =~ s{^[^:]+:\s*}{}; print $string;'
我推荐第一个而不是第二个以避免贪婪问题:
perl -le 'my $string = q{Foo : bar: baz}; $string =~ s{^[^:]+:\s*}{}; print $string;'
要查看我提到的贪婪问题:
perl -le 'my $string = q{Foo : bar baz}; $string =~ s{^.+:\s*}{}; print $string;'
perl -le 'my $string = q{Foo : bar: baz}; $string =~ s{^.+:\s*}{}; print $string;'
关于regex - 正则表达式可以匹配出现在冒号之前的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3858519/