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

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

26
Regex ที่ไม่มีวันจับคู่กับสิ่งใด ๆ
นี่อาจฟังดูเป็นคำถามโง่ ๆ แต่ฉันได้คุยกับเพื่อนนักพัฒนาบางคนเป็นเวลานานและฟังดูเหมือนเป็นเรื่องสนุกที่คิด ดังนั้น; ความคิดของคุณเป็นอย่างไร - Regex มีลักษณะอย่างไรที่จะไม่จับคู่กับสตริงใด ๆ เลย! แก้ไข : ทำไมฉันถึงต้องการสิ่งนี้? ประการแรกเพราะฉันคิดว่ามันน่าสนใจที่จะนึกถึงการแสดงออกเช่นนี้และประการที่สองเพราะฉันต้องการมันสำหรับสคริปต์ ในสคริปต์นั้นฉันกำหนดพจนานุกรมเป็น Dictionary<string, Regex>ในบทที่ผมกำหนดเป็นพจนานุกรมสิ่งนี้ประกอบด้วยสตริงและนิพจน์ตามที่คุณเห็น จากพจนานุกรมนั้นฉันสร้างเมธอดที่ทุกคนใช้พจนานุกรมนี้เป็นเพียงข้อมูลอ้างอิงเกี่ยวกับวิธีการทำงานของพวกเขาหนึ่งในนั้นจะจับคู่นิพจน์ทั่วไปกับไฟล์บันทึกที่แยกวิเคราะห์ ถ้านิพจน์ตรงกับนิพจน์อื่น Dictionary<string, long>ถูกเพิ่มค่าที่นิพจน์ส่งกลับ ดังนั้นในการตรวจจับข้อความบันทึกใด ๆ ที่ไม่ตรงกับนิพจน์ในพจนานุกรมฉันจึงสร้างกลุ่มใหม่ชื่อ "ไม่ทราบ" ในกลุ่มนี้ทุกสิ่งที่ไม่ตรงกับสิ่งอื่นจะถูกเพิ่มเข้ามา แต่เพื่อป้องกันการแสดงออกที่ไม่ตรงกัน (โดยไม่ได้ตั้งใจ) ในบันทึกข้อความฉันจึงต้องสร้างนิพจน์ที่แน่นอนที่สุดไม่เคยตรงกันไม่ว่าฉันจะให้สตริงใดก็ตาม ดังนั้นคุณมีเหตุผลของฉันที่ "ไม่ใช่คำถามจริง" ...

5
RegEx - จับคู่ตัวเลขของความยาวตัวแปร
ฉันพยายามแยกวิเคราะห์เอกสารที่มีหมายเลขอ้างอิงอยู่เกลื่อนกลาด ข้อความข้อความ {4: 2} ข้อความที่น่าทึ่งมากขึ้น {4: 3} ในภายหลังบน {222: 115} และยังมีข้อความอื่น ๆ อีก การอ้างอิงจะอยู่ในวงเล็บเสมอและจะมีเครื่องหมายจุดคู่ระหว่างทั้งสองเสมอ ฉันเขียนสำนวนเพื่อค้นหาพวกเขา {[0-9]:[0-9]} อย่างไรก็ตามสิ่งนี้ล้มเหลวอย่างเห็นได้ชัดเมื่อคุณพบตัวเลขสองหรือสามหลักและฉันมีปัญหาในการหาว่าควรจะเป็นอย่างไร ต้องไม่เกิน 3 หลัก {999: 999} คือขนาดสูงสุดที่จะจัดการได้ ใครมีความคิดเกี่ยวกับการแสดงออกที่เหมาะสมสำหรับการจัดการสิ่งนี้?
131 regex 

5
แยกสตริงย่อยจากสตริงใน Ruby โดยใช้นิพจน์ปกติ
ฉันจะแยกสตริงย่อยจากภายในสตริงใน Ruby ได้อย่างไร ตัวอย่าง: String1 = "<name> <substring>" ฉันต้องการแยกsubstringจากString1(เช่นทุกอย่างภายในเหตุการณ์ล่าสุด<และ>)
130 ruby  regex  string  substring 

2
Visual Studio Code ใช้รสชาติใดของ Regex
พยายามค้นหา - แทนที่ใน Visual Studio Code ฉันพบว่ารสชาติ Regex นั้นแตกต่างจาก Visual Studio ทั้งหมด โดยเฉพาะฉันพยายามประกาศกลุ่มที่มีชื่อstring (?<p>[\w]+)ซึ่งทำงานใน Visual Studio แต่ไม่ใช่ใน Visual Studio Code Invalid groupมันจะบ่นกับข้อผิดพลาด นอกเหนือจากการแก้ไขปัญหาเฉพาะนี้ฉันกำลังมองหาข้อมูลเกี่ยวกับรสชาติของ Regexes ใน Visual Studio Code และจะหาเอกสารเกี่ยวกับเรื่องนี้ได้ที่ไหนดังนั้นฉันจึงสามารถช่วยตัวเองด้วยคำถามอื่น ๆ ที่อาจพบเจอ เต็มรูปแบบการใช้งานของ Visual Studio .NET นิพจน์ปกติเป็นเอกสารที่นี่ ลิงก์นี้ถูกกล่าวถึงเป็นเอกสารสำหรับ VS Code ที่อื่นใน Stackoverflow แต่ไม่ใช่

2
ค้นหาและแทนที่ด้วยคอมโพเนนต์ RegEx ในตัวแก้ไข Atom
ฉันต้องการค้นหาและแทนที่สิ่งนี้ `https://example.com/`{.uri} ถึง [https://example.com/](https://example.com/) ด้วยvimฉันจะทำs/(http. *) {.uri}/[\1](\1)/gแต่ใช้ไม่ได้กับatom.io. ฉันจะแก้ปัญหานี้ได้อย่างไร?
130 regex  atom-editor 

2
Sublime Text regex ตรวจไม่พบแท็กหลายบรรทัด
ฉันมี regex อยู่ที่นี่ \[sometag\](.*)\[/sometag\] ซึ่งควรจะจับข้อความที่ล้อมรอบด้วย[sometag]แท็ก [sometag]this is a bit of text[/sometag]การทำงานสำหรับข้อมูลบรรทัดเดียวที่มีอยู่ในแท็กเหล่านี้เช่นเดียวกับสตริง แต่ใช้ไม่ได้กับข้อความที่ครอบคลุมหลายบรรทัดเช่นนี้ [sometag] here is more text it spans more than one line [/sometag] ด้วยเหตุผลบางประการโปรแกรมค้นหา regex ของ Sublime text จะไม่รู้จักแท็กในหลายบรรทัด ฉันอยากรู้ว่านี่เป็นปัญหากับ Sublime Text ตัวเลือกที่สลับได้หรือแค่ความสามารถส่วนตัวของฉันกับ regexes
130 regex  tags  sublimetext 


4
การอ้างอิงย้อนกลับ RegEx ใน IntelliJ
ฉันต้องการใช้คุณสมบัติค้นหาและแทนที่ของ IntelliJ เพื่อทำการเปลี่ยนแปลงต่อไปนี้: // Replace this model.put('foo', 'bar') // With this model['foo'] = bar ฉันได้ลองสิ่งต่อไปนี้: ข้อความที่ต้องการค้นหา: model.put\((.*),(.*)\) แทนที่ด้วย:model\[\\1\] = \\2 แต่ Intellij ดูเหมือนจะไม่รู้จัก\\1และ\\2เป็นข้อมูลอ้างอิง ฉันได้ลองใช้เครื่องหมายทับเพียงครั้งเดียว แต่ก็ไม่ได้ผลเช่นกัน

7
Regex สตริงหรืออีเมลว่างเปล่า
ฉันพบการตรวจสอบอีเมล Regex จำนวนมากใน SO แต่ฉันไม่พบสิ่งใดที่จะยอมรับสตริงว่าง เป็นไปได้ผ่าน Regex เท่านั้นหรือไม่? ยอมรับสตริงว่างเปล่าหรืออีเมลเท่านั้น? ฉันต้องการสิ่งนี้ใน Regex เท่านั้น
129 regex  email  string 

9
รูปแบบการแยก Python ตรงกัน
Python 2.7.1 ฉันพยายามใช้นิพจน์ทั่วไปของ python เพื่อแยกคำที่อยู่ภายในรูปแบบ ฉันมีสตริงที่มีลักษณะเช่นนี้ someline abc someother line name my_user_name is valid some more lines ฉันต้องการแยกคำว่า "my_user_name" ฉันทำสิ่งที่ชอบ import re s = #that big string p = re.compile("name .* is valid", re.flags) p.match(s) #this gives me <_sre.SRE_Match object at 0x026B6838> ฉันจะแตก my_user_name ได้อย่างไร
129 python  regex 

12
Java; การแทนที่สตริง (โดยใช้นิพจน์ทั่วไป)?
เป็นส่วนหนึ่งของโครงการสำหรับโรงเรียนฉันต้องเปลี่ยนสตริงจากแบบฟอร์ม: 5 * x^3 - 6 * x^1 + 1 เพื่อสิ่งที่ชอบ: 5x<sup>3</sup> - 6x<sup>1</sup> + 1 ฉันเชื่อว่าสิ่งนี้สามารถทำได้ด้วยนิพจน์ทั่วไป แต่ฉันยังไม่รู้ว่าจะทำอย่างไร ช่วยยืมมือหน่อยได้ไหม ป.ล. การกำหนดจริงคือการใช้แอปพลิเคชัน Polynomial Processing Java และฉันใช้สิ่งนี้เพื่อส่ง polynomial.toString () จากโมเดลไปยังมุมมองและฉันต้องการแสดงโดยใช้แท็ก html ในทางที่ดี
129 java  regex 

4
จะตรวจสอบได้อย่างไรว่าตัวเลขเป็นจำนวนเฉพาะกับ regex หรือไม่?
ฉันพบตัวอย่างโค้ดต่อไปนี้สำหรับ Java บนRosettaCode : public static boolean prime(int n) { return !new String(new char[n]).matches(".?|(..+?)\\1+"); } ฉันไม่รู้จัก Java เป็นพิเศษ แต่เข้าใจทุกแง่มุมของข้อมูลโค้ดนี้ยกเว้น regex เอง ฉันมีความรู้พื้นฐานถึงขั้นสูงเกี่ยวกับ Regex ตามที่คุณพบในฟังก์ชัน PHP ในตัว วิธีการที่ไม่.?|(..+?)\\1+ตรงกับตัวเลขที่สำคัญ?
128 java  regex  primes 

6
นิพจน์ทั่วไปของเซิร์ฟเวอร์ SQL ใน T-SQL
มีไลบรารีนิพจน์ทั่วไปที่เขียนด้วย T-SQL (ไม่มี CLR ไม่มีส่วนขยายSPT-SQL บริสุทธิ์) สำหรับ SQL Server และควรใช้กับโฮสติ้งที่ใช้ร่วมกันได้หรือไม่ แก้ไข: ขอบคุณฉันรู้เกี่ยวกับPATINDEX, LIKE, xp_ spsและการแก้ปัญหา CLR ฉันยังรู้ว่ามันไม่ใช่สถานที่ที่ดีที่สุดสำหรับ regex คำถามคือทฤษฎี :) นอกจากนี้ยังยอมรับฟังก์ชันการทำงานที่ลดลง
127 sql-server  regex  tsql 

9
เร่งความเร็วในการแทนที่ regex หลายล้านครั้งใน Python 3
ฉันใช้ Python 3.5.2 ฉันมีสองรายการ รายการ "ประโยค" ประมาณ 750,000 รายการ (สตริงแบบยาว) รายการ "คำ" ประมาณ 20,000 คำที่ฉันต้องการจะลบออกจาก 750,000 ประโยคของฉัน ดังนั้นฉันต้องวนซ้ำ 750,000 ประโยคและทำการแทนที่ประมาณ 20,000 ครั้งแต่เฉพาะในกรณีที่คำของฉันเป็น "คำ" และไม่ได้เป็นส่วนหนึ่งของอักขระที่มีขนาดใหญ่กว่า ฉันกำลังทำสิ่งนี้โดยรวบรวมคำของฉันไว้ล่วงหน้าเพื่อให้พวกเขาถูกขนาบข้างด้วย\bอักขระเมตา compiled_words = [re.compile(r'\b' + word + r'\b') for word in my20000words] จากนั้นฉันก็วนซ้ำ "ประโยค" ของฉัน import re for sentence in sentences: for word in compiled_words: sentence …

4
Regex: ระบุ "ช่องว่างหรือจุดเริ่มต้นของสตริง" และ "ช่องว่างหรือจุดสิ้นสุดของสตริง"
สมมติว่าคุณพยายามจับคู่รูปแบบ "stackoverflow" คุณต้องการสิ่งต่อไปนี้: this is stackoverflow and it rocks [MATCH] stackoverflow is the best [MATCH] i love stackoverflow [MATCH] typostackoverflow rules [NO MATCH] i love stackoverflowtypo [NO MATCH] ฉันรู้วิธีแยกวิเคราะห์ stackoverflow หากมีช่องว่างบนทั้งสองไซต์โดยใช้: /\s(stackoverflow)\s/ เช่นเดียวกับถ้าอยู่ที่จุดเริ่มต้นหรือจุดสิ้นสุดของสตริง: /^(stackoverflow)\s/ /\s(stackoverflow)$/ แต่คุณจะระบุ "ช่องว่างหรือจุดสิ้นสุดของสตริง" และ "ช่องว่างหรือจุดเริ่มต้นของสตริง" โดยใช้นิพจน์ทั่วไปได้อย่างไร?
127 regex  preg-match 

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