我需要从RSS提要中删除一些数据。正则表达式匹配冒号前的所有内容?
它出现之前的一切一:,也最好,只是后出现的空间:
例子:
您好:查理想知道如何删除他后面的一切从冒号后面和前面的一个空间。我会一直有这个问号?
凡:和Hello会匹配,但不是“查理说你好”
感谢所有谁拥有这个美好的知识,需要时间来回答。
我需要从RSS提要中删除一些数据。正则表达式匹配冒号前的所有内容?
它出现之前的一切一:,也最好,只是后出现的空间:
例子:
您好:查理想知道如何删除他后面的一切从冒号后面和前面的一个空间。我会一直有这个问号?
凡:和Hello会匹配,但不是“查理说你好”
感谢所有谁拥有这个美好的知识,需要时间来回答。
试试这个:
^[^:]+:\s?
尾随\s?
将匹配冒号后面的空间,但并不需要它。
我同意@gpojd;如果有效载荷中有冒号,则应使用否定字符类来避免贪婪问题。
为什么'\ s?' - '.'会匹配空格(不是换行符)。 – 2010-10-04 19:44:45
@lasseepeholt,你是对的。我更新了。 – Brad 2010-10-04 19:47:41
你可以使用: ^.*:
这符合:
Hello :
查理想知道如何从结肠,并在前面有一个空格后面删除他后面的一切。我会一直有这个问号?
使用
^[^:]+:\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;'
我看到大胆。内容HTML? – 2010-10-04 19:47:14
当你说“一切之前的一切:”时,你是指* *之前的所有内容,或者是最后一个? – 2010-10-04 20:45:21