我需要正则表达式从Perl代码中删除easycode。
我正在使用此正则表达式,但这不正确
$message =~ s/<.+?>|&[a-z]+;|\[.+?\]/ /g;
此正则表达式删除[.+?\]
之间的所有代码。
如果有人可以提供帮助,请告诉我
答案 0 :(得分:0)
嗯,是的,这就是\[.+?\]
部分的匹配。只需删除该部分(以及前面的交替运算符):
$message =~ s/<.+?>|&[a-z]+;/ /gi;
(我也认为你的正则表达式应该不区分大小写)
答案 1 :(得分:0)
#!/usr/bin/perl
use strict;
use warnings;
my @test = ("[ nikon 400]", "[ nikon \$400 ]", "[quick_sort]", "[CODE]", "[QUOTE]", "[OTHER STUFF]", "[ test123!%&/(){} ]");
foreach my $line (@test){
$line =~ s/<.+?>|&[a-z]+;|\[[A-Z]+\]/ /g;
print "$line\n"
};
输出:
[ nikon 400]
[ nikon $400 ]
[quick_sort]
[OTHER STUFF]
[ test123!%&/(){} ]
我可以假设这真的是你想要的。是否要将[]
之间的多个条目合并为[quick sort]
,将更改为[quick_sort]
?这不是一个大问题。但是你必须向我们提供有关文本的更多信息(括号之间),这样我们才能构建一个合适的正则表达式,而不仅仅是一个贪婪的野兽。