php 两个单词 正则表达式字符前_php – 以正则表达式匹配任何顺序的多个单词[复制]...

参见英文答案 > Multiple words in any order using regex                                    7个

好吧,我想说我想在一个句子中匹配3个单词…但我需要按任意顺序匹配它们,例如:

$sentences = Array(

"one two three four five six seven eight nine ten",

"ten nine eight seven six five four three two one",

"one three five seven nine ten",

"two four six eight ten",

"two ten four six one",

);

所以我需要匹配单词“two”,“four”& “十”,但以任何顺序,他们可以或不可以在他们之间有任何其他的话.我试试

foreach($sentences AS $sentence) {

$n++;

if(preg_match("/(two)(.*)(four)(.*)(ten)/",$sentence)) {

echo $n." matched\n";

}

}

但这只会匹配句子1,我需要匹配句子1,2,4& 5.

我希望你能帮忙……

问候!

(对不起我的英文)

解决方法:

您可以使用Positive Lookahead来实现此目的.

前瞻方法很适合匹配包含这些子串的字符串而不管顺序如何.

if (preg_match('/(?=.*two)(?=.*four)(?=.*ten)/', $sentence)) {

echo $n." matched\n";

}

标签:php,regex

来源: https://codeday.me/bug/20190624/1276994.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值