作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 Perl 正则表达式来匹配两个字符串 x bla
和 [x] bla
.一种选择是 /(?:x|\[x\]) bla/
.这是不可取的,因为在现实世界中,x
比较复杂,所以我想避免重复。
迄今为止最好的解决方案是放置 x
在变量中并预编译正则表达式:
my $x = 'x';
my $re = qr/(?:$x|\[$x\]) bla/o;
最佳答案
这是可能的,但不是那么干净。您可以利用条件子模式支持诸如 (?(N))
之类的测试这一事实。检查第 N 个捕获子模式是否成功匹配。因此,您可以使用诸如 /(\[)?X(?(1)\])/
之类的表达式。匹配“[X]”或“X”。
关于regex - 如何巧妙地将 "x"和 "[x]"与正则表达式匹配而不重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6485252/
这适用于 ubuntu 16.04,但不适用于 17.10 + curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslog
我是一名优秀的程序员,十分优秀!