Tim*_*Tim 7 regex perl readability
我正在写一个Perl正则表达式来匹配字符串x bla
和[x] bla
.一种选择是/(?:x|\[x\]) bla/
.这是不可取的,因为在现实世界中,x
更复杂,所以我想避免重复它.
到目前为止,最好的解决方案是x
输入变量并预编译正则表达式:
my $x = 'x';
my $re = qr/(?:$x|\[$x\]) bla/o;
Run Code Online (Sandbox Code Playgroud)
有更整洁的解决方案吗?在这种情况下,可读性比性能更重要.
这是可能的,但不是全部清洁.您可以使用条件子模式支持测试的事实,例如(?(N))
检查第N个捕获子模式是否成功匹配.所以你可以使用一个表达式/(\[)?X(?(1)\])/
来匹配'[X]'或'X'.
归档时间: |
|
查看次数: |
175 次 |
最近记录: |