负前瞻性错误

时间:2018-08-21 16:40:10

标签: regex

我想得到这些字符串

84fyctvvtvxy.jpg
84fyctv_vtv(test)-_xy.jpg

但不是这些字符串

84fyctvvtvxy_t.jpg
84fyctvvtv(test)-_xy_t.jpg

我尝试过此RegEx

([A-Za-z0-9 ()€_]+(?!(.|.)_t))\.jpg

我需要排除以_t.jpg结尾的字符串

但这是行不通的,任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

您可以使用以下模式:

^(?!.*_t\.jpg$)[\w()€ .-]+$
  • ^声明行首。
  • (?!.*_t\.jpg$)否定超前,检查子字符串是否不在字符串末尾。
  • [\w()-.]+匹配字符集中的任何字符。
  • $声明行尾位置。

您可以https://docs.docker.com/docker-hub/repos/试试。

答案 1 :(得分:2)

您可以通过对模式的string部分使用负的 behinding (?<!_t)来解决此问题,如下所示:

\.jpg

Demo.