回答
use warnings;
use strict;
my $html = '<SELECT>foo</SELECT> bar';
$html =~ s{(</SELECT>).*}{$1};
print "$html\n";
__END__
<SELECT>foo</SELECT>
您還應該考慮使用CPAN上的許多HTML解析器之一。
$html =~ s#</SELECT>.*$#</SELECT>#;
你或許可以把它寫不</SELECT>
替換字符串之中,但恕我直言這將是的可讀性。
請注意到s ///替代可以一邊使用其它字符從/
作爲分隔符,在這種情況下,我選擇使用#
,因爲你的正則表達式中包含正斜槓字符,否則必須進行轉義使正則表達式少可讀
如果$ html字符串包含多行,那麼上面的正則表達式只會匹配'',如果它在第一行。您需要添加's'修飾符以將字符串視爲單行。 ##。* $# #s;' – 2011-04-13 21:26:19
@Sam - 我不確定OP是否意味着行獨立或不行...如果行獨立。你確實是對的。 – DVK 2011-04-14 14:56:48
當刀(找固定的字符串)就足夠了,不要使用正則表達式(電鋸):
my $html = 'use dom to work with </SELECT> html!';
my $cut = '</SELECT>';
printf "|%s|\n", substr($html, index($html, $cut) + length($cut));
==>
| html!|
如果你想你可以使用一個第一</SELECT>
前站的文本正則表達式是這樣的:
$html =~ /(.*?<\/SELECT>)/;
my $required_text = $1;
或在一個步驟:
my ($required_text) = $html =~ /(.*?<\/SELECT>)/;
它使用非格力dy修飾符?
,我認爲是你需要的。
或更好的substr()
子例程像上一個答案說。
- 1. 字符串的刪除部分的Perl
- 2. 參數替換 - 模式後刪除字符串的一部分
- 3. 在Perl中刪除字符串的一部分
- 4. 刪除字符串,如果它僅僅是最後一部分
- 5. 刪除「。」後的部分字符串。
- 6. Perl:刪除數組中的一部分字符串
- 7. 刪除總是相同模式的字符串的最後一部分
- 8. SQL刪除字符串的一部分
- 9. php刪除字符串的一部分
- 10. 刪除字符串的一部分
- 11. 在特定字符後刪除部分字符串
- 12. MySQL的刪除字符串的最後一部分後,特定的字符
- 13. 刪除特定字符後的字符串的其餘部分
- 14. 替換模式後的字符串的最後一部分
- 15. 刪除Python中某些字符後的字符串部分
- 16. 正則表達式模式 - 排除字符串的一部分
- 17. PHP - 刪除字符串的最後一部分 - preg_replace
- 18. 刪除字符串的最後一部分用冒號
- 19. MySQL的爆炸字符串,刪除最後一部分
- 20. 解析和刪除perl中的字符串部分
- 21. 在MYSQL中刪除部分字符串
- 22. 使用Perl刪除字符串中的最後一個字
- 23. 正則表達式,刪除字符串的第一部分
- 24. 正則表達式刪除字符串的一部分
- 25. 使用正則表達式刪除字符串的一部分
- 26. 從字符串列表中刪除字符串的一部分,其中在本身的部分是字符串
- 27. 通過第一個和最後一個字符刪除一部分字符串?
- 28. clojure刪除字符串中模式的最後一個入口
- 29. 刪除字符串的特定部分
- 30. 刪除字符串不同部分中的唯一字符
嗨@toolic,你的回答幫了我,我可以問你關於這個功能的鏈接/教程嗎?謝謝! – catzilla 2015-04-16 09:33:26
@catzilla:您的命令行(或聯機)提供的Perl文檔:'perldoc perlop'和'perldoc perlre' – toolic 2015-04-16 12:25:30