我目前有这个:tr/[.]+(?=<)//d它应该删除所有字符(由...表示[.]+),直到第一个"<",因为我正在使用一个积极的前瞻.但由于某些原因,它是删除所有"."与"<"从字符串.
为了记录,我没有使用正则表达式处理HTML或XML.
在[]中用作字符类时,字符的含义会发生变化.[.]没有意义,真的,不同于.所以 .在这种情况下从字面上解释.
我认为这应该工作得很好:
$text =~ s/^.*?</</s;
Run Code Online (Sandbox Code Playgroud)
你不想要tr.
#!/usr/bin/perl
use strict;
use warnings;
while ( <DATA> ) {
last unless /\S/;
s/^.+?</</;
print;
}
__DATA__
a < b < c
a < b < c
Run Code Online (Sandbox Code Playgroud)