Regex 如何获得正确的正则表达式以获得我想要的输出

Regex 如何获得正确的正则表达式以获得我想要的输出,regex,perl,Regex,Perl,您好,我正在使用perl,现在我不知道如何获得想要的输出。我只想打印所有数字。下面的数字是我的代码。我希望这里的人能帮我找到一个合适的正则表达式 请帮帮我。。。这是我的密码 #!/usr/bin/perl my $string = "<TR><TD COLSPAN=2 VALIGN=TOP>Please enter the random key shown below:<TR><TD>&nbsp;<TD VALIGN=TOP>&

您好,我正在使用perl,现在我不知道如何获得想要的输出。我只想打印所有数字。下面的数字是我的代码。我希望这里的人能帮我找到一个合适的正则表达式

请帮帮我。。。这是我的密码

#!/usr/bin/perl
my $string = "<TR><TD COLSPAN=2 VALIGN=TOP>Please enter the random key shown below:<TR><TD>&nbsp;<TD VALIGN=TOP><FONT SIZE=+1><FONT COLOR=WHITE>...</FONT>4<FONT COLOR=WHITE>...</FONT>5<FONT COLOR=WHITE>...</FONT>4<FONT COLOR=WHITE>..</FONT>4<FONT COLOR=WHITE>..</FONT>2<FONT COLOR=WHITE>..</FONT>2</FONT></TR>";

if ($string =~  m,</FONT>(\d)<FONT COLOR=WHITE,i) {
    print "$1\n";  #output 454422
} else {
     print "Wrong Regex! \n";
}
#/usr/bin/perl
my$string=“请输入如下所示的随机键:…4…5…4…4…2…2”;

如果($string=~m,(\d)您正在查找“全局匹配”的
/g
标志,它匹配模式的所有匹配项,而不仅仅是第一个匹配项

while ( $string =~  m,</FONT>(\d)<FONT COLOR=WHITE,ig ) {
    print "$1\n";
} # output 45442

我假设您想要的输出是注释行
#output 454422
。要得到它,您需要在
while
-循环中包装正则表达式并添加
/g
。现在,它只匹配一次

my $string =
"<TR><TD COLSPAN=2 VALIGN=TOP>Please enter the random key shown below:<TR><TD>&nbsp;<TD VALIGN=TOP><FONT SIZE=+1><FONT COLOR=WHITE>...</FONT>4<FONT COLOR=WHITE>...</FONT>5<FONT COLOR=WHITE>...</FONT>4<FONT COLOR=WHITE>..</FONT>4<FONT COLOR=WHITE>..</FONT>2<FONT COLOR=WHITE>..</FONT>2</FONT></TR>";

while ( $string =~ m,</FONT>(\d)<FONT COLOR=WHITE,ig ) {
  if ($1) {
    print "$1\n";
  #output 454422
  } else {

    print "Wrong Regex! \n";
  }
}
my$string=
“请输入如下所示的随机键:…4…5…4…4…2…2”;

虽然($string=~m,(\d)欢迎使用stackoverflow。很高兴您展示了您的代码。现在,您说输出与您想要的不一样……那么,您想要如何输出呢?它有什么问题吗?另一件事:您可能会有人告诉您不要使用正则表达式解析HTML。
my $string =
"<TR><TD COLSPAN=2 VALIGN=TOP>Please enter the random key shown below:<TR><TD>&nbsp;<TD VALIGN=TOP><FONT SIZE=+1><FONT COLOR=WHITE>...</FONT>4<FONT COLOR=WHITE>...</FONT>5<FONT COLOR=WHITE>...</FONT>4<FONT COLOR=WHITE>..</FONT>4<FONT COLOR=WHITE>..</FONT>2<FONT COLOR=WHITE>..</FONT>2</FONT></TR>";

while ( $string =~ m,</FONT>(\d)<FONT COLOR=WHITE,ig ) {
  if ($1) {
    print "$1\n";
  #output 454422
  } else {

    print "Wrong Regex! \n";
  }
}