- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于字符串“aa\nbb\ncc”,我想从左边的最后一个字母到第一个换行符(“a”)到多行字符串的末尾进行匹配,并期望"aa\nbb\ncc" =~ qr/( . $ .+ )/xms
匹配 a\nbb\ncc
那"aa\nbb\ncc\n" =~ qr/( . $ .+ )/xms
匹配 a\nbb\ncc\n
.
但我没有匹配到 "aa\nbb\ncc" =~ qr/( . $ .+ )/xms
并匹配 c\n
为 "aa\nbb\ncc" =~ qr/( . $ .+ )/xms
.
使用 qr/( . $ ..+ )/xms
我得到了预期的结果(参见示例代码)。
Perl 版本 5.14.2。
任何人都可以解释这种行为吗?
perldoc perlre:
m Treat string as multiple lines. That is, change "^" and "$"
from matching the start or end of the string to matching the start
or end of any line anywhere within the string.
s Treat string as single line. That is, change "." to match any character
whatsoever, even a newline, which normally it would not match.
Used together, as "/ms", they let the "." match any character whatsoever,
while still allowing "^" and "$" to match, respectively, just after and
just before ewlines within the string.
\z Match only at end of string
#!/usr/bin/env perl
use strict;
use warnings;
print "Multiline string : ", '"aa\nbb\ncc"', "\n\n";
my $str = "aa\nbb\ncc";
print_match($str, qr/( . $ )/xms); # matches "a"
print_match($str, qr/( . $ . )/xms); # matches "a\n"
print_match($str, qr/( . $ .. )/xms); # matches "a\nb"
print_match($str, qr/( . $ ..+ )/xms); # matches "a\nbb\ncc"
print_match($str, qr/( . $ .+ )/xms); # NO MATCH ! Why ???
print_match($str, qr/( . $ .+ \z )/xms); # NO MATCH ! Why ???
print "\nMultiline string now with terminating newline : ", '"aa\nbb\ncc\n"', "\n\n";
$str = "aa\nbb\ncc\n";
print_match($str, qr/( . $ )/xms); # matches "a"
print_match($str, qr/( . $ . )/xms); # matches "a\n"
print_match($str, qr/( . $ .. )/xms); # matches "a\nb"
print_match($str, qr/( . $ ..+ )/xms); # matches "a\nbb\ncc\n"
print_match($str, qr/( . $ .+ )/xms); # MATCHES "c\n" ! Why ???
print_match($str, qr/( . $ .+ \z)/xms); # MATCHES "c\n" ! Why ???
sub print_match {
my ($str, $regex) = @_;
$str =~ $regex;
if ( $1 ) {
printf "--> %-20s matched : >%s< \n", $regex, $1;
}
else {
printf "--> %-20s : no match !\n", $regex;
}
}
Multiline string : "aa\nbb\ncc"
--> (?^msx:( . $ )) matched : >a<
--> (?^msx:( . $ . )) matched : >a
<
--> (?^msx:( . $ .. )) matched : >a
b<
--> (?^msx:( . $ ..+ )) matched : >a
bb
cc<
--> (?^msx:( . $ .+ )) : no match !
Multiline string now with terminating newline : "aa\nbb\ncc\n"
--> (?^msx:( . $ )) matched : >a<
--> (?^msx:( . $ . )) matched : >a
<
--> (?^msx:( . $ .. )) matched : >a
b<
--> (?^msx:( . $ ..+ )) matched : >a
bb
cc
<
--> (?^msx:( . $ .+ )) matched : >c
<
最佳答案
这是一个错误。请通过运行 perlbug
报告它命令行也是。
$ perl -E'say "aa\nbb\ncc" =~ qr/( . $ .+ )/xms ? ">$1<" : 0'
0
$ perl -E'say "aa\nbb\ncc\n" =~ qr/( . $ .+ )/xms ? ">$1<" : 0'
>c
<
$ perl -v
...
This is perl 5, version 16, subversion 0 (v5.16.0) built for x86_64-linux
...
"a\nbb\ncc"
和
"a\nbb\ncc\n"
分别。有与
$
相关的优化.其中一名似乎未能接受
/ms
考虑到。
use re 'debug';
感兴趣.
$ perl -Mre=debug -E'say "aa\nbb\ncc" =~ qr/( . $ .+ )/xms ? ">$1<" : 0'
Compiling REx "( . $ .+ )"
Final program:
1: OPEN1 (3)
3: SANY (4)
4: MEOL (5)
5: PLUS (7)
6: SANY (0)
7: CLOSE1 (9)
9: END (0)
anchored ""$ at 2 minlen 2
Matching REx "( . $ .+ )" against "aa%nbb%ncc"
0 <> <aa%nbb%ncc> | 1:OPEN1(3)
0 <> <aa%nbb%ncc> | 3:SANY(4)
1 <a> <a%nbb%ncc> | 4:MEOL(5)
failed...
3 <aa%n> <bb%ncc> | 1:OPEN1(3)
3 <aa%n> <bb%ncc> | 3:SANY(4)
4 <aa%nb> <b%ncc> | 4:MEOL(5)
failed...
6 <aa%nbb%n> <cc> | 1:OPEN1(3)
6 <aa%nbb%n> <cc> | 3:SANY(4)
7 <aa%nbb%nc> <c> | 4:MEOL(5)
failed...
Match failed
0
Freeing REx: "( . $ .+ )"
关于regex - 无法理解多行正则表达式 qr/( . $ .+ )/xms 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11412439/
我了解到 QRCODES 的字符数限制约为 4,290 个(约 4kb)。 这是真的吗?有什么方法可以增加它们的内存大小吗? 如果可能的话,我希望有更多空间:P 最佳答案 规范摘要如下: * ht
我越来越多地考虑使用 QR 码来传输二进制信息,例如图像,因为每当我演示我的应用程序时,它都会发生在 WiFi 或 3G/4G 无法工作的情况下。 我想知道是否可以将一个二进制文件分成多个部分,以便通
谁知道如何生成二维码?以及如何像这里一样装饰http://mojiq.kazina.com/ ? 最佳答案 试试这个教程 http://www.thonky.com/qr-code-tutorial/
我有以下 ZPL 代码,它打印带有字段数据 X50X-8091X-11111 的 QR 代码。 ^XA^PON^FWN^FO30,10^BQN,2,6^FDx50x-8091x-12345^FS^XZ
查找 Q 的其他正交列的最佳方法是什么?我已经计算了简化的 QR 分解,但需要完整的 QR 分解。 我认为有一个标准方法,但我一直找不到它。 您可能想知道为什么我需要完整的 Q 矩阵。我用它来将“自然
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我使用 2 个不同的生成器工具生成了 2 个二维码,但输入数据相同。他们生成了完全不同的二维码。如果我扫描代码我得到相同的数据,所以看起来没问题,但我不确定这种现象的原因。 任何的想法? 编辑: 例子
我正面临一个我想不太熟悉的问题(因为,在谷歌上搜索,我没有发现任何提示)。我正在尝试使用 TCPDF 提供的类生成 QR 码。几乎一切正常。我能够生成任何类型的网站链接等。 但是当我尝试为“发送电子邮
我正面临一个我想不太熟悉的问题(因为,在谷歌上搜索,我没有发现任何提示)。我正在尝试使用 TCPDF 提供的类生成 QR 码。几乎一切正常。我能够生成任何类型的网站链接等。 但是当我尝试为“发送电子邮
我正在制作一个二维码阅读器,我遇到了 zxing lib。我能够成功地将它合并到我的项目中。但是,在使用该应用程序时,我注意到它需要另一个应用程序(即 qr droid 应用程序)才能使用它,否则应用
根据wiki ,Google 2 因素身份验证 key 应该是 16 个字符的 Base32 字符串。当我解码谷歌发给我的二维码时,我发现它符合 Key format specified by goo
为什么使用相同的网址时某些二维码看起来会有所不同? 最佳答案 QR 码有 40 种版本(大小)、4 个纠错级别和 8 种屏蔽可能性,为任何给定输入提供总共 1280 个可能的 QR 码。 通常根据要存
我正在开发 iOS 上的 QR 码扫描仪应用程序,我得到了输出 AVCaptureOutput关于委托(delegate)方法captureOutput:didOutputMetadataObject
我有一个可以扫描二维码的应用。 场景: 前往应用 点击“扫描”按钮 打开相机扫描二维码 我的问题是:我可以使用 Appium“模拟”QR 吗? 最佳答案 如果您有 QR code. Scenario
我们已使用 Unity 5.3.4f1 中的 ZXing.dll 和 Vuforia Unity SDK 5.5.9 实现了 QR 检测功能。我们在 GameObject 上有一个 QR 检测脚本,该
Warning: sharing your TOTP seed with third-parties breaks the very basic assumption of multi-factor
我正在使用 PHP QR 码 ( http://phpqrcode.sourceforge.net/ ) 创建 QR 码。它运行良好,但现在我需要一个自由空间来放置其中心的自定义图形或 Logo 。我
QR 二维码中插入图片 二维码终于火了,现在大街小巷大小商品广告上的二维码标签都随处可见,而且大都不是简单的纯二维码,而是中间有个性图标的二维码。 我之前做了一个使用google开源项目zxin
我对二维码字符表有点疑惑。规范摘要如下: Numeric only Max. 7,089 characters (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) Alphanumer
我正在尝试为每个客户生成二维码。每个二维码都会给我创建一封电子邮件。我已经研究过并且我非常确定我了解如何最好地创建包含特定主题和正文的电子邮件。 创建用于创建电子邮件的 mailto 代码/脚本/行。
我是一名优秀的程序员,十分优秀!