PHP 如果最后三个字符包含两个字母,则正则表达式匹配

PHP Regex match if last three characters contain two letters

基本上我有这个,但它要么:

[en].{0,2}$

我想做的是检测 'en' 而不是 'e' 或 'n'。仅按该顺序 'en',但在最后三个字符中。

所以它应该匹配

attend

但不是:

attained

所以它必须检测最后三个字符是否按顺序包含'en'。

Just 'en' in that order but in the last three characters.

这意味着您需要匹配字符串末尾的 en 或字符串末尾后面有任何单个字符的 en

您可以使用

en.?$

regex demo

详情

  • en - en 子字符串
  • .? - 任何可选的字符
  • $ - 字符串结尾。

如果输入中可能有换行符,请使用 s 修饰符:/en.?$/s.

您可以使用正则表达式

^.*(?=.*en.*).{3}$

查看 regex 101 demo

如果 bean 也可以使用此正则表达式:

/e.?n$|en.?$/g

[Regex Demo]

如果你想要最后三个字符以 en 开头,你可以使用这个正则表达式

en.$

如果你希望最后三个字符以 en 结尾,你可以使用这个正则表达式

.en$

如果两种情况都可以接受,您可以使用此正则表达式

(.en|en.)$