從一個字符串結束標記我有一個這樣的字符串:刪除開始,在Perl
<script>This String may contain other JS tags in between </script>
我的要求是刪除開始,並從字符串結尾的腳本標籤,如果字符串之間的一些其它標籤,那些不應該被刪除。
我該如何在Perl中做到這一點?
從一個字符串結束標記我有一個這樣的字符串:刪除開始,在Perl
<script>This String may contain other JS tags in between </script>
我的要求是刪除開始,並從字符串結尾的腳本標籤,如果字符串之間的一些其它標籤,那些不應該被刪除。
我該如何在Perl中做到這一點?
您可以嘗試下面的代碼來刪除開始和結束腳本標記。
"<script>This String may contain other JS tags in between </script>".replace(/^<script>|<\/script>$/g, "");
'This String may contain other JS tags in between '
OR
"foo <script>This String may contain other JS tags in between </script> foo".replace(/^((?:(?!<script>).)*)<script>(.*?)<\/script>((?:(?!<script>).)*)$/g, "$1$2$3");
'foo This String may contain other JS tags in between foo'
通過perl的,
$ echo 'foo <script>This String may contain other JS tags in between </script> foo' | perl -pe 's/^((?:(?!<script>).)*)<script>(.*?)<\/script>((?:(?!<script>).)*)$/\1\2\3/g'
foo This String may contain other JS tags in between foo
「我怎樣才能在Perl中做到這一點?」 ©ALBI – edem 2014-09-05 13:41:25
@edem添加了perl解決方案.. – 2014-09-06 06:26:54
發表一個示例。 – 2014-09-06 11:19:43
在Perl中,你可以做一個測試,以檢查它是否符合您的標籤,然後做替代。
#!/usr/bin/perl
use warnings;
use strict;
my $string = '<script>This String may contain other JS tags in between </script>';
if ($string =~ /^(<script>).*(<\/script>)$/) {
$string =~ s/$1|$2//g;
}
print $string, "\n";
會打印:
This String may contain other JS tags in between
$ string =〜s/^(
您是否嘗試過的東西? – Toto 2014-09-05 12:59:56
是的..我嘗試使用http://search.cpan.org/dist/HTML-Strip/Strip.pm 但這會刪除字符串中可能存在的任何其他標記 – ALBI 2014-09-05 13:11:36
[小心解析的風險標籤與正則表達式!](http://stackoverflow.com/q/1732348/2032064) – Mifeet 2014-09-05 13:28:05