尝试对分号分隔的单词列表运行正则表达式

Dan*_*boy 1 php regex pcre

我有一个以分号分隔的单词列表(大约180,000个单词),如下所示:

;test;dog;cat;hello;whatever;
Run Code Online (Sandbox Code Playgroud)

如何使用正则表达式获取包含特定子字符串的所有单词的aray?例如 - 如何让所有单词hat包含字母a?我试过这个:

preg_match_all('#(?:;).*a.*(?:;)#u', $one_line, $matches);
Run Code Online (Sandbox Code Playgroud)

^但它似乎没有产生正确的结果?...我做错了什么?

Bra*_*raj 6

得到所有单词帽子包含字母a?

使用preg_match_all方法从索引1获取匹配的组.

(\w*a\w*)
Run Code Online (Sandbox Code Playgroud)

在线演示


如果分号之间有多个单词,请按照以下注释中@ anubhava的建议尝试下面的正则表达式.

[^;a]*a[^;]*
Run Code Online (Sandbox Code Playgroud)

在线演示