คำถามติดแท็ก regex

นิพจน์ทั่วไปจัดเตรียมภาษาที่ประกาศเพื่อจับคู่รูปแบบภายในสตริง โดยทั่วไปจะใช้สำหรับการตรวจสอบความถูกต้องสตริงการแยกวิเคราะห์และการแปลง เนื่องจากนิพจน์ทั่วไปนั้นไม่ได้มาตรฐานอย่างสมบูรณ์คำถามทั้งหมดที่มีแท็กนี้จึงควรมีแท็กที่ระบุภาษาการเขียนโปรแกรมหรือเครื่องมือที่เกี่ยวข้อง หมายเหตุ: การขอ HTML, JSON และอื่น ๆ regex มีแนวโน้มที่จะพบกับปฏิกิริยาเชิงลบ หากมีการแยกวิเคราะห์มันใช้ที่แทน


24
จะแทนที่ URL ธรรมดาด้วยลิงค์ได้อย่างไร
ฉันใช้ฟังก์ชันด้านล่างเพื่อจับคู่ URL ภายในข้อความที่กำหนดและแทนที่เป็นลิงก์ HTML นิพจน์ทั่วไปใช้งานได้ดี แต่ขณะนี้ฉันเปลี่ยนเฉพาะนัดแรกเท่านั้น ฉันจะแทนที่ URL ทั้งหมดได้อย่างไร ฉันเดาว่าฉันควรจะใช้คำสั่งexecแต่ฉันไม่ได้คิดวิธีการทำ function replaceURLWithHTMLLinks(text) { var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i; return text.replace(exp,"<a href='$1'>$1</a>"); }
454 javascript  regex 

30
Regex สำหรับรหัสผ่านจะต้องมีอย่างน้อยแปดตัวอักษรอย่างน้อยหนึ่งหมายเลขและทั้งตัวอักษรตัวเล็กและตัวพิมพ์ใหญ่และตัวอักษรพิเศษ
ฉันต้องการแสดงออกปกติเพื่อตรวจสอบว่า: รหัสผ่านที่มีอย่างน้อยแปดตัวอักษรรวมทั้งจำนวนอย่างน้อยหนึ่งและรวมทั้งตัวอักษรที่ต่ำกว่าและตัวพิมพ์ใหญ่และตัวอักษรพิเศษเช่น#, ,?! ไม่สามารถเป็นรหัสผ่านเก่าของคุณหรือมีชื่อผู้ใช้"password"หรือ"websitename" และนี่คือนิพจน์การตรวจสอบความถูกต้องของฉันซึ่งมีความยาวแปดตัวอักษรรวมถึงตัวอักษรตัวพิมพ์ใหญ่หนึ่งตัวอักษรตัวพิมพ์เล็กหนึ่งตัวและตัวเลขหนึ่งตัวหรืออักขระพิเศษ (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" ฉันจะเขียนให้รหัสผ่านต้องมีแปดตัวอักษรรวมถึงอักษรตัวพิมพ์ใหญ่หนึ่งหนึ่งอักขระพิเศษและตัวเลขและตัวอักษร ?

14
มีฟังก์ชั่น RegExp.escape ใน Javascript หรือไม่
ฉันแค่ต้องการสร้างการแสดงออกปกติจากสตริงที่เป็นไปได้ใด ๆ var usersString = "Hello?!*`~World()[]"; var expression = new RegExp(RegExp.escape(usersString)) var matches = "Hello".match(expression); มีวิธีการในตัวสำหรับที่? ถ้าไม่ใช่คนใช้อะไร RegExp.escapeทับทิมมี ฉันไม่รู้สึกว่าฉันจะต้องเขียนของตัวเองมันต้องมีอะไรบางอย่างที่เป็นมาตรฐาน ขอบคุณ!
442 javascript  regex 

6
ค้นหานิพจน์ปกติแทนที่ใน Sublime Text 2
ฉันต้องการค้นหาแทนที่ด้วยนิพจน์ทั่วไปใน Sublime Text 2 เอกสารเกี่ยวกับเรื่องนี้ค่อนข้างเป็นโลหิตจาง โดยเฉพาะฉันต้องการทำการแทนที่กลุ่มดังนั้นบางอย่างเช่นการแปลงข้อความนี้: Hello my name is bob และคำค้นหานี้: หาอะไร: my name is (\w)+ แทนที่ด้วย: my name used to be $(1) ข้อความค้นหาใช้งานได้ดี แต่ฉันไม่สามารถหาวิธีที่จะทำการแทนที่โดยใช้กลุ่ม regexp ได้


14
วิธีลบตัวแบ่งบรรทัดทั้งหมดออกจากสตริง
ฉันมีข้อความเป็น textarea และฉันอ่านมันโดยใช้แอตทริบิวต์. value ตอนนี้ฉันต้องการที่จะลบ linebreaks ทั้งหมด (ตัวละครที่ผลิตเมื่อคุณกดEnter) จากข้อความของฉันตอนนี้ใช้. แทนที่ด้วยการแสดงออกปกติ แต่ฉันจะระบุ linebreak ใน regex ได้อย่างไร หากเป็นไปไม่ได้มีวิธีอื่นไหม
440 javascript  regex  string 

13
Regex จับคู่อักขระทั้งหมดระหว่างสองสาย
ตัวอย่าง: "นี่เป็นเพียงประโยคง่ายๆ \ n" ฉันต้องการจับคู่อักขระทุกตัวระหว่าง "นี่คือ" และ "ประโยค" ตัวแบ่งบรรทัดควรถูกละเว้น ฉันไม่สามารถหาไวยากรณ์ที่ถูกต้องได้
434 regex 

17
จะแยกตัวเลขจากสตริงใน Python ได้อย่างไร?
ฉันจะดึงตัวเลขทั้งหมดที่มีอยู่ในสตริง แบบใดที่เหมาะสมกว่าสำหรับวัตถุประสงค์การแสดงออกปกติหรือisdigit()วิธีการ ตัวอย่าง: line = "hello 12 hi 89" ผลลัพธ์: [12, 89]
432 python  regex  string  numbers 

13
นิพจน์ปกติเพื่อแยกข้อความระหว่างวงเล็บเหลี่ยม
คำถาม regex ง่าย ๆ ฉันมีสตริงในรูปแบบต่อไปนี้: this is a [sample] string with [some] special words. [another one] การแสดงออกปกติเพื่อแยกคำภายในวงเล็บเหลี่ยมคืออะไร sample some another one หมายเหตุ: ในกรณีที่ฉันใช้งานวงเล็บไม่สามารถซ้อนกันได้
411 regex 

21
การจับคู่ regex ไม่โลภ (ลังเล) ใน sed หรือไม่
ฉันพยายามใช้ sed เพื่อล้างบรรทัด URL เพื่อแยกโดเมนออก ดังนั้นจาก: http://www.suepearson.co.uk/product/174/71/3816/ ฉันต้องการ: http://www.suepearson.co.uk/ (ไม่ว่าจะมีหรือไม่มีเครื่องหมายทับท้ายก็ไม่สำคัญ) ฉันเหนื่อย: sed 's|\(http:\/\/.*?\/\).*|\1|' และ (หนีออกมาจากปริมาณที่ไม่โลภ) sed 's|\(http:\/\/.*\?\/\).*|\1|' แต่ดูเหมือนว่าฉันจะไม่สามารถให้ quantifier ที่ไม่โลภ ( ?) ทำงานดังนั้นมันจะจับคู่สตริงทั้งหมดเสมอ
406 regex  sed  pcre  greedy  regex-greedy 

12
คุณช่วยให้ตัวอย่างบางส่วนของเหตุผลที่มันยากที่จะแยก XML และ HTML ด้วย regex หรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ข้อผิดพลาดอย่างหนึ่งที่ฉันเห็นคนทำซ้ำแล้วซ้ำอีกคือพยายามแยก XML หรือ HTML ด้วย regex ต่อไปนี้เป็นสาเหตุบางประการในการแยกวิเคราะห์ XML และ HTML: ผู้คนต้องการปฏิบัติต่อไฟล์เป็นลำดับของบรรทัด แต่สิ่งนี้ใช้ได้: <tag attr="5" /> ผู้คนต้องการปฏิบัติต่อ <หรือ <แท็กเป็นจุดเริ่มต้นของแท็ก แต่มีลักษณะเช่นนี้อยู่ใน wild: <img src="imgtag.gif" alt="<img>" /> คนมักต้องการจับคู่แท็กเริ่มต้นกับแท็กสิ้นสุด แต่ XML และ HTML อนุญาตให้แท็กมีตัวเอง (ซึ่ง regex แบบดั้งเดิมไม่สามารถจัดการได้เลย): <span id="outer"><span id="inner">foo</span></span> ผู้คนมักต้องการจับคู่กับเนื้อหาของเอกสาร (เช่นปัญหา "ค้นหาหมายเลขโทรศัพท์ทั้งหมดในหน้าหนึ่ง ๆ " ที่มีชื่อเสียง) แต่ข้อมูลอาจถูกทำเครื่องหมายขึ้น …
402 html  xml  regex 

25
มีวิธีง่ายๆในการลบช่องว่างหลายรายการในสตริงหรือไม่?
สมมติว่าสตริงนี้: The fox jumped over the log. กลายเป็น: The fox jumped over the log. อะไรคือวิธีที่ง่ายที่สุด (1-2 บรรทัด) เพื่อให้ได้สิ่งนี้โดยไม่ต้องแยกและเข้าไปในรายการ?
390 python  regex  string 

11
ต้องใช้อักขระพิเศษใดในการแสดงออกปกติ
ฉันเบื่อที่จะพยายามเดาอยู่เสมอว่าถ้าฉันควรหลีกเลี่ยงอักขระพิเศษเช่น ' ()[]{}|' ฯลฯ เมื่อใช้งาน regexps จำนวนมาก มันแตกต่างกับตัวอย่างเช่น Python, sed, grep, awk, Perl, เปลี่ยนชื่อ, Apache, find และอื่น ๆ มีกฎชุดใดบ้างที่บอกเวลาที่ฉันควรและเมื่อใดที่ฉันไม่ควรหลีกเลี่ยงอักขระพิเศษ? มันขึ้นอยู่กับประเภท regexp เช่น PCRE, POSIX หรือ regexps เพิ่มเติมหรือไม่
389 regex 

20
แยกสตริง Java ตามบรรทัดใหม่
ฉันพยายามแยกข้อความในการJTextAreaใช้ regex เพื่อแยกสตริงโดย\nอย่างไรก็ตามสิ่งนี้ไม่ทำงานและฉันก็ลองด้วย\r\n|\r|nและการรวมกันของ regexes อื่น ๆ รหัส: public void insertUpdate(DocumentEvent e) { String split[], docStr = null; Document textAreaDoc = (Document)e.getDocument(); try { docStr = textAreaDoc.getText(textAreaDoc.getStartPosition().getOffset(), textAreaDoc.getEndPosition().getOffset()); } catch (BadLocationException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } split = docStr.split("\\n"); }
389 java  regex  split  newline 

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