정규식 (Big | Small) (State | City)-[0-9] * \. csv와 동등한 .gitignore 패턴은 무엇입니까?


23

나는 .gitignore비슷한 것과 비슷한 정규식을 가지고있다 :

(Big|Small)(State|City)-[0-9]*\.csv

작동하지 않아서 RegexLab.NET 에 대해 테스트했습니다 .

그런 다음 gitignore 매뉴얼 페이지에서 gitignore가 정규 표현식을 사용하지 않고 fnmatch (3)을 사용한다는 것을 알게되었습니다 .

그러나 fnmatch에는 캡처 그룹과 동등한 것으로 보이지 않습니다. 이것이 가능합니까 아니면 이것을 세 줄로 나눌 필요가 있습니까?

답변:


26

gitignore가 지원하는 패턴으로이 정규 표현식을 표현할 방법이 없습니다. 문제는 캡처 그룹의 부족이 아니라 (실제로 캡처 그룹을 사용하지 않는 것), 문제는 |운영자 의 부족입니다 . 이것을 네 줄로 나누어야합니다.

BigState-[0-9]*.csv
SmallState-[0-9]*.csv
BigCity-[0-9]*.csv
SmallCity-[0-9]*.csv

모든 문자와 일치 BigState-4foo.csv하므로 패턴이 eg *와 일치합니다. 고정 된 수의 자릿수 만 기꺼이 일치시키지 않으면 glob 패턴으로 이보다 더 나은 작업을 수행 할 수 없습니다.


2
나는 당신이 말한 것을 정확하게했습니다. 또한 *를 지적 해 주셔서 감사합니다. 이전 식을 반복하지는 않지만 while 카드입니다. 내 필요에 충분하지만 더 나아지기를 바랐습니다.
저스틴 친애하는
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.