Php preg_match_all检查特殊结构
嗨,我想用Php preg_match_all检查特殊结构,php,preg-match,Php,Preg Match,嗨,我想用preg\u match\u all检查字符串是否由元音和辅音组成。 结构应为辅音|元音|辅音|元音 例如: xaxa xuxu baba nunu 这有点棘手,因为虽然我的第一反应是匹配元音,然后不匹配元音,但它也匹配其他所有内容。英语中有规则,y有时是元音 这应该能让你达到目的 $string = "xaxa xuxu baba nunu nnnn"; $vowels = 'aeiouy'; $consonants = 'bcdfghjklmnpqrstvwxyz'; $patt
preg\u match\u all
检查字符串是否由元音和辅音组成。
结构应为辅音|元音|辅音|元音
例如:
xaxa
xuxu
baba
nunu
这有点棘手,因为虽然我的第一反应是匹配元音,然后不匹配元音,但它也匹配其他所有内容。英语中有规则,y有时是元音 这应该能让你达到目的
$string = "xaxa xuxu baba nunu nnnn";
$vowels = 'aeiouy';
$consonants = 'bcdfghjklmnpqrstvwxyz';
$pattern = "!([$consonants][$vowels][$consonants][$vowels])!i";
$found = preg_match_all($pattern,$string,$matches);
foreach ($matches[0] as $value){
echo $value."<br />";
}
该脚本检查每个单词的交替元音/辅音,并返回它们:
$subject = <<<LOD
abacagopa
titot
blux
apocop
pipo
laek
LOD;
$pattern = '~
# definitions
(?(DEFINE)(?<vowel>[aeiou]))
(?(DEFINE)(?<consonant>[bcdfghjklmnpqrstvwyz]))
# pattern
\b\g<vowel>?+(?>\g<consonant>\g<vowel>)*+\g<consonant>?+\b
~ix';
echo preg_replace($pattern, '$0<br/>', $subject);
$subject=Hi感谢您的帮助。我不必设置辅音?我试过了,但什么也没找到。但我能看到。或者我如何只显示匹配的条目?我的第一个答案也匹配了非字母的内容。啊,好吧,现在我得到了如下答案:数组([0]=>xaxa[1]=>xuxu[2]=>baba[3]=>nununu)[1]=>Array([0]=>xaxa[1]=>xuxu[2]=>baba[3]=>nunununuu]),但我想让xaxaxa,xuxu每一行都有一行。。。。还有我不想看的底片,你在挣扎什么?你读过正则表达式手册了吗?
$subject = <<<LOD
abacagopa
titot
blux
apocop
pipo
laek
LOD;
$pattern = '~
# definitions
(?(DEFINE)(?<vowel>[aeiou]))
(?(DEFINE)(?<consonant>[bcdfghjklmnpqrstvwyz]))
# pattern
\b\g<vowel>?+(?>\g<consonant>\g<vowel>)*+\g<consonant>?+\b
~ix';
echo preg_replace($pattern, '$0<br/>', $subject);