이 정규식은 .ts 또는 .tsx 파일 이름과 일치하지만 spec.tsx 또는 spec과 일치하면 안됩니다 .ts. 아래는 내가 쓴 정규식이다.정규식이 spec.ts 및 spec.tsx와 일치하지 않지만 다른 .ts 및 .tsx와 일치해야합니다
(?!spec)\.(ts|tsx)$
그러나 ignore.spec.tsx 및 spec.ts 파일을 무시하지 못합니다. 여기서 내가 뭘 잘못하고 있니? 제발 조언.
이 정규식은 .ts 또는 .tsx 파일 이름과 일치하지만 spec.tsx 또는 spec과 일치하면 안됩니다 .ts. 아래는 내가 쓴 정규식이다.정규식이 spec.ts 및 spec.tsx와 일치하지 않지만 다른 .ts 및 .tsx와 일치해야합니다
(?!spec)\.(ts|tsx)$
그러나 ignore.spec.tsx 및 spec.ts 파일을 무시하지 못합니다. 여기서 내가 뭘 잘못하고 있니? 제발 조언.
부울 룩어 헤드 구문 ((?!...)
)은 앞에 있으며은 정규식에있는 모든 위치에서 찾습니다. 따라서 귀하의 (?!spec)
은 그 시점 다음에있는 \.
직전과 비교됩니다. 즉, 파일 확장자 인 .ts
또는 .tsx
과 비교됩니다. 부정적인 미리보기가 일치하지 않으므로 전체 문자열이 일치 항목으로 거부되지 않습니다. 여기
(?<!spec)\.(ts|tsx)$
는 (화면 왼쪽에있는 "단위 테스트"링크 참조) demo입니다 :
당신은 부정적인 lookbehind 정규식을 원한다.위의 내용은 정규 표현식이 부정적인 lookbehind를 지원한다고 가정합니다. regex의 모든 맛이 아닙니다. 아무튼 확실히 문자열을 처음부터 시작 "
^(?!.*spec\.tsx?$).*\.tsx?$
이 말한다, 효과 : 당신이 부정적인 lookbehinds를 지원하지 않는 정규식 풍미를 사용하는 일이 있다면, 당신은 더 복잡한 부정적 예측을 사용할 수 있습니다 '이 t은. spec.ts
또는 spec.tsx
로 끝나는 것이 그 끝나지 않는 경우가 .ts
또는 .tsx
에 끝나는 경우, 다음과 일치 "
정규식 맛은 무엇인가? –