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

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

问题描述:

基本上我有这个,但其一方或:PHP正则表达式匹配,如果最后三个字符包含两个字母

[en].{0,2}$ 

我想要做的是检测“恩”,而不是“E”或“N”。只需按'en'顺序排列,但最后三个字符。

所以应该匹配

attend 

但不是:

attained 

所以必须检测,如果最后三个字符,以便遏制 '恩'。

只是'en'按顺序,但在最后三个字符。

这意味着你需要匹配en要么是在字符串的结束或en有在字符串结束后的任何单个字符。

您可以使用

en.?$ 

regex demo

详细

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

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

+1

这很好,它完美的作品。是的,基本上它包含最后三个字符中的'en'。 – Hasen

你可以使用正则表达式

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

看到regex 101 demo

如果bean也是可以接受的使用这个表达式:

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

[Regex Demo]

+0

匹配ebnb这是错误的 – marvel308

+0

@ marvel308噢!好吧,不要指出,谢谢;)。 –

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

en.$ 

有连接结束,您可以使用此正则表达式

.en$ 

如果这两种情况下是可以接受的,您可以使用这正则表达式

(.en|en.)$