Regex Perl正则表达式:如何匹配两个非数字之间有一个数字的字符串?
如何匹配两个非数字之间有一个或多个数字且字符串以数字结尾的数组的字符串?假设我想打印出不匹配的字符串。我该怎么做 这是我到目前为止所拥有的Regex Perl正则表达式:如何匹配两个非数字之间有一个数字的字符串?,regex,string,perl,Regex,String,Perl,如何匹配两个非数字之间有一个或多个数字且字符串以数字结尾的数组的字符串?假设我想打印出不匹配的字符串。我该怎么做 这是我到目前为止所拥有的 my @array = ("OST3GIC2", "GRE1", "foo23eoo4","MAX13", "foo9fsa2"); foreach @array{ if !(grep /^+\D(+\d)+\D\d$/) { print $_."\n"; } 所需输出 GRE1 MAX13 谢谢您可以查找: /\D\d+\D.*\d$/ \D非数字
my @array = ("OST3GIC2", "GRE1", "foo23eoo4","MAX13", "foo9fsa2");
foreach @array{
if !(grep /^+\D(+\d)+\D\d$/) {
print $_."\n";
}
所需输出
GRE1
MAX13
谢谢您可以查找:
/\D\d+\D.*\d$/
非数字\D
任意位数\d+
非数字\D
任何东西*
一个数字\d
字符串的最后一个结尾$
^\D+\d+$
^\D*\d+\D+\d+$
如果需要匹配项,然后过滤掉,可以使用
^\D+\d+$
^\D*\d+\D+\d+$
意义
以反转regexp结果
表示从任何非数字开始,然后是任何数字,然后是任何非数字,然后以数字结束^\D\D+\D+\D+$
+
)位于字符类之后,而不是它之前。您编译的这个正则表达式不可能没有错误。