簡體   English   中英

正則表達式匹配冒號前出現的所有內容?

[英]Regular Expression to match everything that appears before a colon?

我需要從RSS源中刪除一些數據。

這是在a之前出現的所有內容並且最好是在以下之后出現的空間

例:

你好:查理想知道如何從冒號后面和前面的一個空格中刪除他身后的一切。 我最后總會有這個問號嗎?

哪里:和你好匹配,但不是“查理打招呼”

感謝所有擁有這些精彩知識並花時間回復的人。

采用

^[^:]+:\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;'

嘗試這個:

^[^:]+:\s?

尾隨\\s? 將匹配冒號后面的空格,但不需要它。

我同意@gpojd ; 如果有效負載中有冒號,則應使用負字符類以避免貪婪問題。

你可以使用: ^.*:

匹配:

Hello :查理想知道如何從冒號后面和前面的一個空格中刪除他身后的一切。 我最后總會有這個問號嗎?

^.*: *這樣的東西應該很好用。 這從行的開頭到冒號以及后面的任何空格都匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM