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

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

2
ฉันจะใช้โอเปอเรเตอร์ 'ไม่ชอบ' ใน MongoDB ได้อย่างไร
ฉันสามารถใช้ SQL Likeประกอบการใช้pymongo, db.test.find({'c':{'$regex':'ttt'}}) แต่ฉันจะใช้Not LikeOperator ได้อย่างไร? ฉันเหนื่อย db.test.find({'c':{'$not':{'$regex':'ttt'}}) แต่มีข้อผิดพลาด: OperationFailure: $ not ไม่สามารถมี regex ได้

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

14
ตรวจสอบว่าสตริงมีตัวเลข Java หรือไม่
ฉันกำลังเขียนโปรแกรมที่ผู้ใช้ป้อน String ในรูปแบบต่อไปนี้: "What is the square of 10?" ฉันต้องการตรวจสอบว่ามีตัวเลขอยู่ในสตริง จากนั้นแยกเฉพาะตัวเลข ถ้าฉันใช้.contains("\\d+")หรือ.contains("[0-9]+")โปรแกรมไม่พบตัวเลขใน String ไม่ว่าอินพุตจะเป็นอะไรก็ตาม แต่.matches("\\d+")จะใช้ได้เฉพาะเมื่อมีตัวเลขเท่านั้น ฉันจะใช้อะไรเป็นโซลูชันในการค้นหาและแยกข้อมูลได้
102 java  regex  string 

5
คุณสามารถสร้างเพียงส่วนหนึ่งของ regex case-insensitive ได้ไหม
ฉันได้เห็นตัวอย่างมากมายของการทำให้นิพจน์ทั่วไปไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ สิ่งที่ฉันสงสัยคือมีเพียงส่วนหนึ่งของนิพจน์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ตัวอย่างเช่นสมมติว่าฉันมีสตริงดังนี้: fooFOOfOoFoOBARBARbarbarbAr จะเกิดอะไรขึ้นหากฉันต้องการจับคู่ "foo" ที่เกิดขึ้นทั้งหมดไม่ว่าจะเป็นกรณีใด แต่ฉันต้องการจับคู่ "BAR" ตัวพิมพ์ใหญ่เท่านั้น ทางออกที่ดีคือสิ่งที่ใช้ได้กับรสชาติ regex แต่ฉันสนใจที่จะฟังภาษาที่เฉพาะเจาะจงเช่นกัน (ขอบคุณEspo ) แก้ไข ลิงค์ที่ Espo ให้มานั้นมีประโยชน์มาก มีตัวอย่างที่ดีเกี่ยวกับการเปิดและปิดตัวปรับแต่งภายในนิพจน์ สำหรับตัวอย่างที่สร้างขึ้นของฉันฉันสามารถทำสิ่งนี้ได้: (?i)foo*(?-i)|BAR ซึ่งทำให้การจับคู่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่สำหรับเฉพาะส่วน foo ของการจับคู่ ดูเหมือนว่าจะใช้ได้กับการใช้งาน regex ส่วนใหญ่ยกเว้น Javascript, Python และอื่น ๆ อีกสองสามอย่าง (ตามที่ Espo กล่าวถึง) เรื่องใหญ่ที่ฉันสงสัยเกี่ยวกับ (Perl, PHP, .NET) รองรับการเปลี่ยนแปลงโหมดอินไลน์ทั้งหมด
102 regex 

4
นิพจน์ทั่วไปจากโมดูล re รองรับขอบเขตคำ (\ b) หรือไม่
ในขณะที่พยายามเรียนรู้เพิ่มเติมเล็กน้อยเกี่ยวกับนิพจน์ทั่วไปบทช่วยสอนแนะนำว่าคุณสามารถใช้\bเพื่อจับคู่ขอบเขตคำได้ อย่างไรก็ตามตัวอย่างต่อไปนี้ในตัวแปล Python ไม่ทำงานตามที่คาดไว้: >>> x = 'one two three' >>> y = re.search("\btwo\b", x) มันควรจะได้รับวัตถุแข่งขันหากมีสิ่งใดถูกจับคู่ Noneแต่มันเป็น คือ\bการแสดงออกไม่ได้รับการสนับสนุนในหลามหรือฉันใช้มันผิดหรือเปล่า?
102 python  regex 

8
นิพจน์ทั่วไปเพื่อจับคู่สตริงที่ขึ้นต้นด้วย "หยุด"
ฉันจะสร้างนิพจน์ทั่วไปเพื่อจับคู่คำที่จุดเริ่มต้นของสตริงได้อย่างไร เรากำลังมองหาการจับคู่stopที่จุดเริ่มต้นของสตริงและทุกอย่างสามารถติดตามได้ ตัวอย่างเช่นนิพจน์ควรตรงกัน: stop stop random stopping ขอบคุณ.
102 regex 

3
ฟังก์ชันที่จะส่งคืนเฉพาะอักขระที่เป็นตัวอักษรและตัวเลขจากสตริง?
ฉันกำลังมองหาฟังก์ชัน php ที่จะรับสตริงอินพุตและส่งคืนเวอร์ชันที่ผ่านการฆ่าเชื้อแล้วโดยการลบอักขระพิเศษทั้งหมดออกให้เหลือเพียงตัวอักษรและตัวเลข ฉันต้องการฟังก์ชันที่สองที่ทำเหมือนกัน แต่ส่งกลับเฉพาะอักขระที่เป็นตัวอักษร AZ ความช่วยเหลือใด ๆ ที่ชื่นชมมาก
102 php  regex 

3
gcc 4.8 หรือบั๊กกี้รุ่นก่อนหน้าเกี่ยวกับนิพจน์ทั่วไปหรือไม่
ฉันพยายามใช้ std :: regex ในโค้ด C ++ 11 แต่ดูเหมือนว่าการรองรับนั้นค่อนข้างมีปัญหา ตัวอย่าง: #include <regex> #include <iostream> int main (int argc, const char * argv[]) { std::regex r("st|mt|tr"); std::cerr << "st|mt|tr" << " matches st? " << std::regex_match("st", r) << std::endl; std::cerr << "st|mt|tr" << " matches mt? " << std::regex_match("mt", r) << …
101 c++  regex  gcc  c++11  libstdc++ 

3
Flask รองรับนิพจน์ทั่วไปในการกำหนดเส้นทาง URL หรือไม่
ฉันเข้าใจว่า Flask มีตัวแปลง int, float และ path แต่แอปพลิเคชันที่เรากำลังพัฒนามีรูปแบบที่ซับซ้อนกว่าใน URL มีวิธีที่เราสามารถใช้นิพจน์ทั่วไปเช่นเดียวกับใน Django ได้หรือไม่?
101 python  regex  flask 

3
อะไรคือความแตกต่างระหว่างวงเล็บเหลี่ยมและวงเล็บใน regex?
นี่คือนิพจน์ทั่วไปที่ฉันสร้างขึ้นเพื่อใช้ใน JavaScript: var reg_num = /^(7|8|9)\d{9}$/ นี่คืออีกหนึ่งรายการที่แนะนำโดยสมาชิกในทีมของฉัน var reg_num = /^[7|8|9][\d]{9}$/ กฎคือการตรวจสอบหมายเลขโทรศัพท์: ควรเป็นตัวเลขเพียงสิบตัว ตัวเลขแรกควรเป็น 7, 8 หรือ 9
101 regex 

11
จะใช้ sed, awk หรือ gawk เพื่อพิมพ์เฉพาะสิ่งที่จับคู่ได้อย่างไร?
ฉันเห็นตัวอย่างและหน้าคนมากมายเกี่ยวกับวิธีการทำสิ่งต่างๆเช่นการค้นหาและแทนที่โดยใช้ sed, awk หรือ gawk แต่ในกรณีของฉันฉันมีนิพจน์ทั่วไปที่ฉันต้องการเรียกใช้กับไฟล์ข้อความเพื่อแยกค่าเฉพาะ ฉันไม่ต้องการทำการค้นหาและแทนที่ สิ่งนี้ถูกเรียกจากทุบตี ลองใช้ตัวอย่าง: ตัวอย่างนิพจน์ทั่วไป: .*abc([0-9]+)xyz.* ตัวอย่างไฟล์อินพุต: a b c abc12345xyz a b c ง่ายเหมือนเสียงนี้ฉันไม่สามารถหาวิธีเรียก sed / awk / gawk ได้อย่างถูกต้อง สิ่งที่ฉันหวังว่าจะทำคือจากในสคริปต์ทุบตีของฉันมี: myvalue=$( sed <...something...> input.txt ) สิ่งที่ฉันได้ลอง ได้แก่ : sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file sed -n 's/.*([0-9]).*/\\1/g' example.txt # …
101 regex  unix  sed  awk  gawk 

4
แยกสตริงย่อยโดยใช้ regexp ใน bash ธรรมดา
ฉันพยายามดึงเวลาออกจากสตริงโดยใช้ bash และฉันก็มีปัญหาในการหามันออกมา สตริงของฉันเป็นแบบนี้: US/Central - 10:26 PM (CST) และผมต้องการแยก10:26ส่วน มีใครรู้วิธีทำสิ่งนี้ด้วยการทุบตีโดยไม่ใช้ sed, awk ฯลฯ บ้างไหม? เช่นใน PHP ฉันจะใช้ - ไม่ใช่วิธีที่ดีที่สุด แต่ได้ผล - สิ่งที่ชอบ: preg_match( ""(\d{2}\:\d{2}) PM \(CST\)"", "US/Central - 10:26 PM (CST)", $matches ); ขอบคุณสำหรับความช่วยเหลือแม้ว่าคำตอบจะใช้ sed หรือ awk
101 regex  bash 

3
Python regex พบการจับคู่ที่ทับซ้อนกันทั้งหมดหรือไม่
ฉันกำลังพยายามค้นหาชุดตัวเลขทุกๆ 10 หลักภายในชุดตัวเลขขนาดใหญ่โดยใช้ re ใน Python 2.6 ฉันไม่สามารถคว้าการแข่งขันที่ไม่ทับซ้อนกันได้อย่างง่ายดาย แต่ฉันต้องการทุกนัดในซีรีย์ตัวเลข เช่น. ใน "123456789123456789" ฉันควรได้รับรายชื่อต่อไปนี้: [1234567891,2345678912,3456789123,4567891234,5678912345,6789123456,7891234567,8912345678,9123456789] ฉันพบการอ้างอิงถึง "lookahead" แต่ตัวอย่างที่ฉันเห็นแสดงเฉพาะคู่ของตัวเลขแทนที่จะเป็นการจัดกลุ่มขนาดใหญ่และฉันไม่สามารถแปลงค่าได้เกินสองหลัก

6
นับจำนวนการจับคู่ของ regex ใน Javascript
ฉันต้องการเขียนนิพจน์ทั่วไปเพื่อนับจำนวนช่องว่าง / แท็บ / ขึ้นบรรทัดใหม่เป็นกลุ่มข้อความ ดังนั้นฉันจึงเขียนสิ่งต่อไปนี้อย่างไร้เดียงสา: - numSpaces : function(text) { return text.match(/\s/).length; } ด้วยเหตุผลที่ไม่ทราบสาเหตุก็มักจะกลับ1มา ปัญหาเกี่ยวกับข้อความข้างต้นคืออะไร? ฉันได้แก้ไขปัญหาดังต่อไปนี้แล้ว: - numSpaces : function(text) { return (text.split(/\s/).length -1); }
101 javascript  regex 

16
แยกสตริงที่ตัวอักษรพิมพ์ใหญ่
เป็นสิ่งที่pythonicวิธีการแยกสตริงก่อนที่จะเกิดขึ้นของชุดที่กำหนดของตัวละครหรือไม่? ตัวอย่างเช่นผมต้องการแยก 'TheLongAndWindingRoad' ที่เกิดขึ้นของอักษรตัวพิมพ์ใหญ่ (อาจจะยกเว้นแรก) ใด ๆ ['The', 'Long', 'And', 'Winding', 'Road']และได้รับ แก้ไข: นอกจากนี้ยังควรแยกที่เกิดขึ้นเพียงครั้งเดียวคือจากฉันต้องการที่จะได้รับ'ABC' ['A', 'B', 'C']
101 python  regex  string 

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