在 Perl 中使用 Regexp 在两个字符串之间提取字符串

托木斯克

我尝试在 Perl[%L10n.msg('')%]Perl之间提取文本,例如,如果我有类似 的代码[%L10n.msg('foo')%],我想获取foo

我有它的工作脚本,正如你在下面看到的那样,但它有问题,并且如你所见,它破坏了编码。

我想知道该脚本有什么问题以及如何修复它。

我的正则表达式脚本:

my (@L10n) = $content_from_file =~ /\[\%L10n\.msg\('(.*)'\)\%\]/g;

$content_from_file:

    <div class="detail-trash">
          <span class="blog-article-social-net social-net-fb">
             <svg class="svg-icon-facebook">
                <use xlink:href="[%domain.url_media%]/images/svg-sprite.svg#svg-icon-facebook"></use>
             </svg>
             [%L10n.msg('Zdielať')%]
          </span>
       <span class="previews-counter">Počet hodnotení: [%product.rating_votes%]</span>
       <a href="#" title="[%L10n.msg('Zobraziť recenzie')%]" class="previews-btn js-previews-btn">[%L10n.msg('Zobraziť recenzie')%]</a>
    </div>

当前结果:

Zdiela\x{165}
Zobrazi\x{165} recenzie')%]\" class=\"previews-btn js-previews-btn\">[%L10n.msg('Zobrazi\x{165} recenzie

要求的结果:

Zdielať
Zobraziť recenzie
Zobraziť recenzie
阿尼叔叔

在正则表达式中.*是贪婪的。这意味着它将尝试匹配最长的字符串。将其更改为.*?使其不贪婪。然后它将匹配最短的字符串。

my @L10n = $content_from_file =~ /\[%L10n\.msg\('(.*?)'\)%\]/g;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用javascript获取两个字符之间的子字符串

使用sed或awk重复提取两个字符串之间的文本?

在Perl中使用regex检索两个字符串定界符之间的字符串

正则表达式:使用多行sed提取两个字符串之间的内容

如何使用python提取两个字符串之间的列(几乎相同)

批处理文件:使用特殊字符提取两个字符串之间的子字符串

使用两个字符串在perl中使用chdir:chdir“ / home / $ dir1 / $ dir2”

使用regexp在Robot Framework中用星号替换除前两个和后两个字符以外的字符串字符

如果在Python中使用Regex在两个字符串之间存在子字符串,则提取两个字符串之间的文本

Javascript中的RegExp:在两个字符串之间获取字符串

ORACLE:如何使用regexp_like查找两个字符之间带有单引号的字符串?

PHP:使用正则表达式提取两个字符串之间的数字

使用两个字符串来提取它们之间的字符串的单个命令,例如“ tr”(不带表达式)

使用PHP查找两个字符串之间映射的字符串

使用bash或perl提取两个不同字符串之间的内容

REGEXP_LIKE在两个字符串之间寻找一个字符串

如何在Oracle中使用regexp_replace提取两个字符串之间的值?

使用Javascript获取两个字符串之间的字符串数组

Perl-使用RegExp字符串作为哈希键

使用AppleScript从文本文档中提取两个字符串之间的字符串

使用正则表达式提取两个字符串之间的字符串

如何使用 Perl 比较两个字符串

Oracle SQL:从两个字符串之间的 blob 返回字符串(可能使用 REGEXP_SUBSTR)

javascript regexp 在两个字符串之间找到多个匹配项

使用子字符串获取两个字符串之间的数字

使用 Python 提取文本文件中两个字符串之间的文本数据

如何使用Java在每个pdf文件中具有不同索引的两个字符串之间获取字符串

使用 sed 在两个字符串之间提取直到第一次出现

使用mysql REGEXP_SUBSTR 在两个字符或字符串之间提取字符串