ค้นหาและแทนที่ด้วยคอมโพเนนต์ RegEx ในตัวแก้ไข Atom


130

ฉันต้องการค้นหาและแทนที่สิ่งนี้

`https://example.com/`{.uri}

ถึง

[https://example.com/](https://example.com/)

ด้วยvimฉันจะทำs/(http. *) {.uri}/[\1](\1)/gแต่ใช้ไม่ได้กับatom.io. ฉันจะแก้ปัญหานี้ได้อย่างไร?


3
vimฉันยังสามารถใช้ ฉันต้องการทราบวิธีแก้ปัญหาที่ระบุด้วยatom.
wintermeyer

คำตอบ:


215

หากคุณ Cmd-F และเปิดบานหน้าต่างค้นหาจะมีปุ่ม ". *" อยู่ทางด้านขวา คลิกและตอนนี้เป็นโหมด regex

ฉันหา

(http.*)\{\.uri\}

และแทนที่เป็น

[$1]($1)

4
s/(http.*){.uri}/[\1](\1)/gไม่สามารถatomใช้งานได้เมื่อเปิดใช้งาน RegEx อาจเป็นข้อผิดพลาดหรือไวยากรณ์ RegEx อื่น นั่นคือเหตุผลของคำถามของฉัน
wintermeyer

19
ฉันพบ "(http. *) \ {\. uri \}" และแทนที่เป็น "[$ 1] ($ 1)" มันได้ผล. นี่คือ regex สไตล์ perl ซึ่งฉันเชื่อว่าเป็นมาตรฐาน
speedogoo

1
@speedogoo คุณควรส่งสิ่งนี้เป็นคำตอบที่ถูกต้อง
วิธี

3
มีความคิดอย่างไรที่ฉันจะประเมินกลุ่มที่ถูกจับเพื่อทำบางสิ่งก่อนที่จะแทนที่ ตัวอย่างเช่นหาก$1จับกลุ่มตัวเลข - 123 ให้แทนที่ด้วยการเพิ่ม 1 เข้าไปเช่นeval($1+1).. ?
SexyBeast

6
โอเคฉันลืมใช้วงเล็บใน regex ไม่สนใจสิ่งที่ฉันพูด
Antoine

19

เพียงแค่อัปเดตคำตอบของ @ speedogooสำหรับผู้อ่านในอนาคตหากคุณไม่พบโหมด regex ในมุมมองการค้นหาจะมีลักษณะดังนี้:

ป้อนคำอธิบายภาพที่นี่

นอกจากนี้คุณยังสามารถเปิดได้กับทางลัดCtrl+ Alt+ (เริ่มต้น)/


โปรดทราบว่าแม้^และ$ ได้รับการสนับสนุนโดยการค้นหาและแทนที่ของ Atom


1
คุณกำลังบอกว่า Group Replace ใช้ไม่ได้กับ Atom จึงทำให้คำตอบที่ยอมรับผิด (และทำลายวันของฉันด้วย Atom)?
Dan Rosenstark

3
ฉันเชื่อว่าเขาหมายความว่าไม่รองรับจุดเริ่มต้นของเส้น^และจุดสิ้นสุดของเส้น$ยึด รองรับการแทนที่กลุ่ม
SadullahCeran

3
ใช้งานได้ในเวอร์ชันล่าสุดปัญหา github ที่เชื่อมโยงถูกปิดแล้ว
Frank Lee
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.