regex - 无法获取多行正则表达式来匹配字符串

标签 regex perl

我正在读取一个 HTML 文件,试图从中获取一些信息。我尝试过 HTML 解析器,但不知道如何使用它们来获取关键文本。原始版本读取 html 文件,但此版本是用于 StackOverflow 目的的最小工作示例。

#!/usr/bin/env perl

use 5.036;
use warnings FATAL => 'all';
use autodie ':default';
use Devel::Confess 'color';

sub regex_test ( $string, $regex ) {
    if ($string =~ m/$regex/s) {
        say "$string matches $regex";
    } else {
        say "$string doesn't match $regex";
    }
}
# the HTML text is $s
my $s = '      rs577952184 was merged into
      
        <a target="_blank"
           href="rs59222162">rs59222162</a>
      
';

regex_test ( $s, 'rs\d+ was merged into.*\<a target="_blank".+href="rs(\d+)/');

但是,这不匹配。

我认为问题是“合并到”后的换行符不匹配。

如何更改上述正则表达式以匹配 $s

最佳答案

问题在于 $regex 中的尾随 / 字符,应将其省略或更改为 "

关于regex - 无法获取多行正则表达式来匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74323002/

相关文章:

perl - 如何使用 PerlMagick 提取 EXIF 数据?

perl - 如何将一个对象叠加到另一个对象上

java - 用于排除免费电话号码的 REGEX 表达式

c# - 仅获取正则表达式中组中最长的匹配项

javascript - JavaScript 中的正则表达式自定义单词边界

java - 获取特定字符串后的所有内容

python - 正则表达式匹配两个单词之间的多行文本,包括单词

perl - 如何在 CPAN 中找到使用某些模块的文件?

Perl 不会提示缺少分号

javascript - 正则表达式在Javascript中获取具有复杂结构的字符串