[英]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.