my $test = "<test1>INVOICE STATUS<";
我尝试使用正则表达式:
if ( $test =~ m/(<.*.>)/g){
print "matched $1";
}
获得的输出是"lt;test1>".
任何人都可以建议使用正确的功能,提前谢谢。
答案 0 :(得分:1)
你可以尝试:
/>([^&]+)<\//g
示例:
$_ = "<test1>INVOICE STATUS</test1><test2>NON-PO INVOICE</test2><o:p></o:p></b></p><p class=MsoPlainText><b><test3>please specify</test3><o:p></o:p></b></p><p class=MsoPlainText><b><test4>please specify</test>";
while(/>([^&]+)<\//g){
print "$1\n";
}
输出:
INVOICE STATUS
NON-PO INVOICE
please specify
please specify
答案 1 :(得分:0)
/([-a-zA-Z]\s[a-zA-Z])/g
第一个单词匹配字母或 - ,空格,第二个单词仅字母。
编辑:或/>(.*?)</g
您的方括号与您原始正则表达式中的方式相反。
答案 2 :(得分:0)
$1
包含第一个捕获组的最后一个匹配项,该组由(
和)
分隔。
请尝试:/<(.*.)>/
。