我需要從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