Php 正则表达式匹配包含(一个或多个)必需字符和允许字符的整个单词

Php 正则表达式匹配包含(一个或多个)必需字符和允许字符的整个单词,php,regex,Php,Regex,我想匹配包含至少一个强制字符和允许字符的整个单词 例如 强制字符为:[t,a,x] 允许的字符为:[i,e] t : passed (one of mandatories are here) tea : passed (two of mandatories(t,a) and one allowed(e) here) e : failed (none of mandatory is here) teas : failed (two of mandatories(t,a) an

我想匹配包含至少一个强制字符和允许字符的整个单词

例如
强制字符为:[t,a,x]
允许的字符为:[i,e]

t     : passed (one of mandatories are here)
tea   : passed (two of mandatories(t,a) and one allowed(e) here)
e     : failed (none of mandatory is here)
teas  : failed (two of mandatories(t,a) and one allowed(e) here but one intruder(s))
适用于此的正则表达式代码是什么?
作为一个PHP项目,它将用于搜索MySQL表的12000行,每行包含一个单词

与其直截了当地回答,不如让我帮你自助。通过的单词由以下序列组成:

  • 零个或多个允许字符或必填字符
  • 强制字符
  • 零个或多个允许字符或必填字符

为其中的每一个编写正则表达式,然后将它们连接起来,得到整个问题的正则表达式。

与其给出一个直接的答案,不如让我帮你自己。通过的单词由以下序列组成:

  • 零个或多个允许字符或必填字符
  • 强制字符
  • 零个或多个允许字符或必填字符
为其中的每一个编写正则表达式,然后将它们连接起来,得到整个过程的正则表达式。

在perl中应该是

$string=~/^[tax]*[ie]+$/i#我代表忽略案例

*是1或更多+是0或更多

我刚意识到你想要整句话等等让我重写

^和$将匹配行首和行尾。

在perl中是

$string=~/^[tax]*[ie]+$/i#我代表忽略案例

*是1或更多+是0或更多

我刚意识到你想要整句话等等让我重写


^和$将匹配行首和行尾。

您可以使用以下模式:

\b[ie]*+[taxie]++\b
说明:

由于
[ie]*+
在左边有一个单词边界和一个所有格量词,它尽可能地抓住所有
i
e
,并且永远不会还给它们,那么下一个字符必须是下一个类中的
t
a
x
,并且+量词至少施加1个字符


右侧的单词边界不允许使用其他类型的字符。

您可以使用以下模式:

\b[ie]*+[taxie]++\b
说明:

由于
[ie]*+
在左边有一个单词边界和一个所有格量词,它尽可能地抓住所有
i
e
,并且永远不会还给它们,那么下一个字符必须是下一个类中的
t
a
x
,并且+量词至少施加1个字符


右侧的单词边界不允许使用其他类型的字符。

您需要能够捕获看到的是哪些强制字符和哪些允许的字符,以及有哪些“入侵者”吗?不,我只需要检查它是否通过。您需要能够捕获看到的是哪些强制字符和哪些允许的字符,还有什么“入侵者”?不,我只需要检查它是否通过了。并且确保在任意一端包含单词边界,或开始/结束字符串标记,以确保您不匹配
tea
之类的内容,其中
tea
匹配,但结尾的s失败。对,我假设了一个regex“match”/“test”函数,使用隐式锚点。确保在两端包含单词边界或开始/结束字符串标记,以确保不匹配
tea
之类的内容,其中
tea
匹配,但结尾的s失败。对,我假设一个带有隐式锚点的regex“match”/“test”函数。@MarkusJarderot:它不能,阅读解释来理解原因。@MarkusJarderot:它不能,阅读解释来理解原因。