รูปแบบ. gitignore เทียบเท่ากับ regex (ใหญ่ | เล็ก) (รัฐ | เมือง) - [0-9] * \. csv


23

ฉันมี regex ฉันติดอยู่ในของฉัน.gitignoreคล้ายกับ:

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

มันไม่ได้ทำงานเพื่อให้ผมทดสอบกับRegexLab.NET

จากนั้นผมก็พบgitignoreหน้าคนที่ทำให้ฉันได้เรียนรู้ว่า gitignore ไม่ได้ใช้ regexes แต่fnmatch (3)

อย่างไรก็ตาม fnmatch มันดูเหมือนจะไม่เท่ากับกลุ่มจับภาพ สิ่งนี้เป็นไปได้หรือฉันต้องการแบ่งเป็นสามบรรทัด?

คำตอบ:


26

ไม่มีวิธีใดที่จะแสดงออกถึงรูปแบบปกตินี้ด้วยรูปแบบที่ gitignore รองรับ ปัญหาคือไม่ขาดกลุ่มการดักจับ (อันที่จริงแล้วคุณไม่ได้ใช้กลุ่มการดักจับเช่นนั้น) ปัญหาคือการขาดตัว|ดำเนินการ คุณต้องแบ่งสิ่งนี้ออกเป็นสี่บรรทัด

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

โปรดทราบว่ารูปแบบการจับคู่เช่นBigState-4foo.csvเนื่องจาก*ตรงกับลำดับของตัวละครใด ๆ คุณไม่สามารถทำได้ดีกว่านี้ด้วยรูปแบบ glob เว้นแต่คุณจะยินดีที่จะจับคู่เฉพาะตัวเลขที่กำหนด


2
ฉันลงเอยทำสิ่งที่คุณพูด นอกจากนี้ขอขอบคุณที่ชี้ให้เห็น * ไม่ได้ทำซ้ำการแสดงออกก่อนหน้านี้ แต่เป็นการ์ดในขณะที่ มันดีพอสำหรับความต้องการของฉัน แต่ฉันหวังว่าจะดีขึ้น
Justin Dearing
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.