ฉันพยายามพัฒนาทักษะ regex ของฉัน ฉันต้องการเรียนรู้เกี่ยวกับนิพจน์ lookahead และ lookbehind บนระบบ Archlinux ของฉันฉันลองสิ่งต่อไปนี้:
a=ab;if [[ $a =~ [a-z](?=b) ]]; then echo "Y";else echo "N";fi
ซึ่งเท่าที่ฉันเข้าใจ มันควรจะตรงกันและสะท้อนเสียง "Y" แต่ก็ไม่เป็นเช่นนั้น
echo ab |sed 's/[a-z](?=b)/x/'
...ก็ดูเหมือนจะไม่เข้ากันเช่นกัน grep
ดูเหมือนจะไม่มองไปรอบๆ เช่นกัน แต่ pcregrep
ทำ ฉันยังลองพยายามหลายครั้งในการอ้างอิงและ/หรือหนีสำนวน แต่ก็ไม่มีประโยชน์
ตอนนี้ฉันสับสนเล็กน้อย ใครช่วยกรุณาอธิบายให้ชัดเจนหน่อยว่า lookaround ซึ่งดูเหมือนจะไม่ ที่ แปลกใหม่เมื่อพิจารณาจากจำนวนการกล่าวถึงในบทช่วยสอนสามารถนำมาใช้ได้จริงหรือไม่ หรือฉันแค่สับสนกับการหลบหนีการแสดงออกของฉัน?