作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
so $a ~-6ren">
Perl6正则表达式匹配连词&&如果连词中的所有部分都匹配相同的子字符串而不是整个字符串,则返回True:
> my $a="123abc456def";
123abc456def
> so $a ~~ m/ 23 && ef /
False
so (($a ~~ /23/) && ($a ~~ /ef/))
so (gather {for @myRegexes { take $a ~~ / $_ /; } }).all
> so $a ~~ m/ 23 || ef /
True
最佳答案
专注于简单性而非速度的解决方案
暂时忽略正则表达式,使foo op bar and foo op baz
变得更短的通用P6构造是op
,前提是foo op bar & baz
是纯的(可以并行运行多个调用即可)。
(主要语言的&
运算符是Junction运算符。连接点是具有两个关键特征的连接;一个是其语法简洁/简单/清晰;另一个是其并行处理语义。)
将其应用于正则表达式匹配项中的~~
op:
my $a="123abc456def";
say so $a ~~ / 23 / & / ef /
bar & baz & ...
非常适合单行,则上面的代码通常是合适的。
my @keywords = <12 de>;
say so all ( $a.match: / $_ / for @keywords ) ;
.contains
method而不是正则表达式:
say so all ( $a.contains: $_ for <23 ef> ) ;
it is easier to interpret
$a~~m/23&&ef/
as "$a matches 23 and $a matches ef"
$a~~m/23&&ef/
读为“$ a匹配23和ef”比“$ a匹配23和$ a匹配ef”更容易。但是,当然,“$ a匹配23和ef”仍然是模棱两可的。
say so $a ~~ / 23 / & / ef /
&&
一样,iofo适本地以英语将上面的内容读为“$ a match 23 and ef”,但这一次是“$ a match 23和$ a match ef”的缩写,就像您想要的那样。
&&
对应于其他有用的联合含义,也就是说,它是指将左侧的regex原子和右侧的regex原子与同一子字符串进行匹配。
关于regex - perl6正则表达式匹配连词&&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230072/
我是一名优秀的程序员,十分优秀!