PHP php用正则表达式怎样实现这个功能?

我有一个文本文件 file.txt
内容是每行四个字符:
fdsa
vffd
csfe
zfvs
gfge
fdsk
dcfa
zdco
fdau
dpkl
fpyt

这样的结构,有几十万行。我想把他们分类,带 aeoiu 任一个字符或者多个元音字符的写在
one.txt 文件中,不带 aeoiu 中的任何一个字符放在文件 two.txt 中,代码写了好久,不会做啊,正则完全不懂.有高手指教下吧。又做了伸手党,可耻啊!!!

阅读 2.9k
2 个回答
<?php
$str = <<<EOF
fdsa
vffd
csfe
zfvs
gfge
fdsk
dcfa
zdco
fdau
dpkl
fpyt
EOF;

$strs = explode("\n", $str);

$regex = '/[a-z]*([aeiou]+)[a-z]*/i';

$one = [];
$two = [];

foreach($strs as $str) {
    preg_match($regex, $str, $match);
    if($match) {
        array_push($one, $str);
    } else {
        array_push($two, $str);
    }
    
}

print_r($one);
print_r($two);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题