하나 이상의 비 하이픈 : 부정적 예측에 대한
^[^-]+\.(?:jpg|png)$
필요가 없습니다. (기존 정규식 그냥 (\.(jpg|png))
실제로 같다고 참고 : 내다가 실제 효과가 없습니다, 어떤 문자열이 접두어로 접두어 및(-(100x100|350x350))
로 (\.(jpg|png))
이 없다 할 수 있기 때문이다.)
편집을 추가합니다 : 질문에 다소 모순이있는 것처럼 보입니다. 처음에는 미리보기 이미지를 만들지 않은 파일과 일치시키고 싶다고 말하면서, 예를 들어, 과 일치시키고 싶다고 말하면 은에는 두 개의 미리보기 이미지가 생성되었습니다.
제 생각에는 이미지가 미리보기 이미지인지 확인하는 방법에 대한 명확한 규칙을 제시하지 마십시오. 위의 그림에서 가장 간단한 방법을 사용했습니다. 축소판의 파일 이름에 하이픈과 다른 이미지가 포함되어 있다고 가정합니다. 또는 축소판 이미지의 가장 좁은 정의를 취하고 파일 이름이 .jpg
또는 .png
으로 끝나고 그 앞에 -100x100
또는 -350x350
이없는 파일은 비 미리보기 이미지입니다. 이 경우 다음과 같이 쓸 수 있습니다.
^.*(?<!-100x100)(?<!-350x350)\.(?:jpg|png)\z
네거티브 lookbehind를 사용합니다. . . 부정적인 lookbehind를 지원하는 regex-engine을 가정합니다.
^(?:[^-]|-(?!(?:100x100|350x350)\.(?:jpg|png)\z))*\.(?:jpg|png)\z
을하지만 그것은 단지 두 개의 정규 표현식에 사용하는 것이 훨씬 간단합니다 : (? 당신은 당신이 사용중인 언어를 언급하지 않음) 부정적인 lookbehind없이, 우리는 대신 쓸 수
\.(?:jpg|png)\z
-(?:100x100|350x350)\.(?:jpg|png)\z
및 요구 이 아니고이 두 번째 문자열과 일치해야합니다. 귀하의 질문은 당신이 하나의 긍정적인 정규식으로 이것을하고자 함을 암시하지만, 당신은 왜 언급하지 않습니까?
파일 이름이'image1-200x200.png'이면 어떻게 될까요? – anubhava
영리한 당신. 일반적으로 축소판 크기는 파일 이름보다 표준화되어 있지만, 가변적 인 경우 고려해야합니다. 규칙은 추측 이상의 것을하기에 충분히 명확하게 정의되지 않았습니다. –
불완전하고 모호한 요구 사항이있는 질문 중 하나입니다. – anubhava