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

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


7
นิพจน์ทั่วไปหลายบรรทัดใน Visual Studio
มีวิธีใดบ้างที่จะทำให้ Visual Studio ทำการแทนที่ regex ในหลาย ๆ บรรทัด (ให้การจับคู่ข้ามเส้นแบ่งขอบเขต) ฉันรู้ว่ามีเครื่องมือแก้ไขมากมายที่ฉันสามารถใช้เพื่อสิ่งนี้ได้ แต่ดูเหมือนว่าจะแปลกที่ฟีเจอร์นี้ถูกทิ้งไว้จาก Visual Studio ฉันพลาดอะไรไปรึเปล่า?

6
จาวาสคริปต์นิพจน์ทั่วไปไม่ตรงกับคำ
ฉันจะใช้นิพจน์ทั่วไปของจาวาสคริปต์เพื่อตรวจสอบสตริงที่ไม่ตรงกับคำบางคำได้อย่างไร ตัวอย่างเช่นฉันต้องการฟังก์ชันที่เมื่อส่งผ่านสตริงที่มีabcหรือdefส่งกลับเท็จ 'abcd' -> เท็จ 'cdef' -> เท็จ 'bcd' -> จริง แก้ไข โดยเฉพาะอย่างยิ่งฉันต้องการนิพจน์ทั่วไปที่เรียบง่ายเหมือนอย่างเช่น [^ abc] แต่มันไม่ได้ผลลัพธ์ที่คาดหวังเนื่องจากฉันต้องการตัวอักษรที่ต่อเนื่องกัน เช่น. ฉันต้องการmyregex if ( myregex.test('bcd') ) alert('the string does not contain abc or def'); คำสั่งที่ได้รับการประเมินเพื่อmyregex.test('bcd')true

2
Regex: InCombiningDiacriticalMarks คืออะไร?
รหัสต่อไปนี้เป็นที่รู้จักกันดีในการแปลงอักขระเน้นเสียงเป็นข้อความธรรมดา: Normalizer.normalize(text, Normalizer.Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); ฉันแทนที่วิธี "ทำด้วยมือ" ด้วยวิธีนี้ แต่ฉันต้องเข้าใจส่วน "regex" ของการแทนที่ทั้งหมด 1) "InCombiningDiacriticalMarks" คืออะไร? 2) เอกสารอยู่ที่ไหน? (และคนอื่น ๆ ?) ขอบคุณ.
86 java  regex  unicode 

10
Regex สำหรับการแปลง CamelCase เป็น camel_case ใน java
ฉันเข้าใจว่าทำไมผลลัพธ์ที่ต้องการไม่ได้รับสำหรับการแปลงโดยใช้ regex สตริงเช่นFooBarการที่จะช่วยให้แทนFoo_Bar Foo_Bar_ฉันสามารถทำอะไรบางอย่างกับ String.substring substring(0, string.length() - 2)หรือเพียงแค่แทนที่อักขระตัวสุดท้าย แต่ฉันคิดว่ามีทางออกที่ดีกว่าสำหรับสถานการณ์ดังกล่าว นี่คือรหัส: String regex = "([A-Z][a-z]+)"; String replacement = "$1_"; "CamelCaseToSomethingElse".replaceAll(regex, replacement); /* outputs: Camel_Case_To_Something_Else_ desired output: Camel_Case_To_Something_Else */ คำถาม: กำลังมองหาวิธีที่ดีกว่าเพื่อให้ได้ผลลัพธ์ที่ต้องการหรือไม่?
86 java  regex  string 

30
ฉันจะทดสอบนิพจน์ทั่วไปโดยใช้เอ็นจิ้น RE หลายตัวได้อย่างไร [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันจะทดสอบ regex เดียวกันกับเอนจินนิพจน์ทั่วไปที่แตกต่างกันได้อย่างไร
85 regex  testing 

1
WebWorker คำนวณ regexp ที่ช้าจับคู่ช้าลงอย่างมาก (3x) - Firefox เท่านั้น
ก่อนอื่นฉันเพิ่งสร้างนิพจน์ทั่วไปที่จะจับคู่พา ธ ไลบรารีภายนอกที่ไม่ซ้ำกันทั้งหมดในรายการไฟล์ส่วนหัวทั้งหมดในโปรเจ็กต์ ฉันถามคำถามเกี่ยวกับการสร้าง regexpเมื่อสัปดาห์ที่แล้ว ฉันเริ่มเข้าไปยุ่งเพื่อดูว่ามันจะทำงานอย่างไรเมื่ออะซิงโครนัสและเมื่อกลายเป็นคนทำงานบนเว็บ เพื่อความสะดวกและความน่าเชื่อถือฉันได้สร้างไฟล์สากลนี้ที่ทำงานในทั้งสามโหมด: /** Will call result() callback with every match it founds. Asynchronous unless called * with interval = -1. * Javadoc style comment for Arnold Rimmer and other Java programmers: * * @param regex regular expression to match in string * @param string guess …

6
ฉันจะแทนที่การปรากฏตัวครั้งแรกของตัวละครในทุกคำได้อย่างไร
ฉันจะแทนที่การปรากฏตัวครั้งแรกของตัวละครในทุกคำได้อย่างไร พูดว่าฉันมีสายนี้: hello @jon i am @@here or @@@there and want some@thing in '@here" # ^ ^^ ^^^ ^ ^ และฉันต้องการที่จะลบคำแรก@ในทุกคำเพื่อที่ฉันจะได้สตริงสุดท้ายดังนี้: hello jon i am @here or @@there and want something in 'here # ^ ^ ^^ ^ ^ เพียงเพื่อความกระจ่างตัวอักษร "@" จะปรากฏขึ้นพร้อมกันทุกคำ แต่อาจเป็นตัวเริ่มต้นของคำหรือระหว่างตัวอักษรอื่น ๆ ฉันจัดการเพื่อลบอักขระ "@" ถ้ามันเกิดขึ้นเพียงครั้งเดียวโดยใช้รูปแบบของ regex ที่ฉันพบในDelete substring …
44 python  regex 

2
มีวิธีการตรวจสอบว่าสตริงใน JS เป็นอีโมจิเดียวหรือไม่?
คำถามนั้นง่าย: ฉันมีสตริงstrฉันจะตรวจสอบว่าstrเป็นอีโมจิเดียวและไม่มีอะไรอื่นได้อย่างไร นอกจากนี้ฉันไม่ต้องการใช้ห้องสมุดอื่น Match "🍎", "⛹🏿‍♂️", "3️⃣"แต่ไม่"🍓a", "𝕒","🍌🍀" ฉันมีปัญหาในการหาวิธีแก้ไข แต่นี่คือบางสิ่งที่ฉันได้ลองไปแล้ว: พยายามแก้ปัญหา 1 - เล่นความยาวและ...ผู้ปฏิบัติงาน ฉันได้เรียนรู้ว่า emojis ครอบครองมากกว่าหนึ่งไบต์บางคนถึง 4 ไบต์หรือมากกว่านั้น ... และเราสามารถวัดได้ผ่านlengthคุณสมบัติของสตริง: console.log("🍎".length); // 2 console.log("🛡️".length); // 3 console.log("⛹🏿‍♂️".length); // 6 จากนั้นฉันก็พบว่า...ผู้ประกอบการคำนึงถึงเรื่องนี้และแยกอิโมจิในอาเรย์อย่างถูกต้องจากนั้นฉันสามารถดูlengthคุณสมบัติของอาเรย์ที่เกิดขึ้นและตรวจพบว่าพวกมันแตกต่างกันหรือไม่ str = "⛹🏿‍♂️"; if (str.length !== [...str].length) { // is emoji? } else { // is not emoji } …

3
re.findall ('(ab | cd)', สตริง) vs re.findall ('(ab | cd) +', สตริง)
ในนิพจน์ทั่วไปของ Python ฉันพบปัญหาเอกพจน์นี้ คุณสามารถให้คำแนะนำเกี่ยวกับความแตกต่างระหว่างre.findall('(ab|cd)', string)และre.findall('(ab|cd)+', string)? import re string = 'abcdla' result = re.findall('(ab|cd)', string) result2 = re.findall('(ab|cd)+', string) print(result) print(result2) ผลลัพธ์ที่แท้จริงคือ: ['ab', 'cd'] ['cd'] ฉันสับสนว่าทำไมผลลัพธ์ที่สองจึงไม่มี'ab'เช่นกัน
18 python  regex 

2
ทำไมอ็อบเจกต์ Regexp ถือว่าเป็น "เท็จ" ในรูบี?
ทับทิมมีความคิดที่เป็นสากลของ " truthiness " และ " falsiness " ทับทิมไม่ได้มีสองชั้นที่เฉพาะเจาะจงสำหรับวัตถุบูลีนTrueClassและFalseClassมีอินสแตนซ์เดี่ยวแสดงโดยตัวแปรพิเศษtrueและfalseตามลำดับ อย่างไรก็ตามtruthinessและfalsinessไม่ จำกัด เฉพาะกรณีของทั้งสองเรียนที่เป็นแนวคิดที่เป็นสากลและนำไปใช้กับทุกวัตถุเดียวในรูบี วัตถุทุกคนเป็นอย่างใดอย่างหนึ่งtruthyหรือfalsy กฎนั้นง่ายมาก โดยเฉพาะวัตถุสองอย่างเท่านั้นที่เป็นเท็จ : nilอินสแตนซ์ของNilClassและ falseอินสแตนซ์เดี่ยวของ FalseClass ทุกวัตถุอื่น ๆ เดียวคือtruthy ซึ่งรวมถึงวัตถุที่ถือว่าเป็นเท็จในภาษาการเขียนโปรแกรมอื่นเช่น ,Integer 0 ,Float 0.0 ที่ว่างเปล่า,String '' ที่ว่างเปล่า,Array [] ที่ว่างเปล่า,Hash {} กฎเหล่านี้สร้างขึ้นในภาษาและไม่สามารถระบุได้โดยผู้ใช้ ไม่มีto_boolการแปลงโดยนัยหรืออะไรที่คล้ายกัน นี่คือใบเสนอราคาจากข้อกำหนดภาษา ISO Ruby : 6.6 ค่าบูลีน วัตถุถูกแบ่งออกเป็นทั้งวัตถุ trueishหรือวัตถุ falseish เท็จเท่านั้นและไม่มีวัตถุปลอม falseเป็นอินสแตนซ์เดียวของคลาสFalseClass(ดู 15.2.6) ซึ่งfalse-expressionประเมินค่า (ดู 11.5.4.8.3) …
16 regex  ruby  boolean  jruby  yarv 

1
อะไรคือความแตกต่างระหว่าง $ / และ $ ¢ใน regex?
ตามที่ชื่อระบุความแตกต่างระหว่าง$/และ$¢คืออะไร ดูเหมือนว่าจะมีค่าเท่ากันเสมอ: my $text = "Hello world"; $text ~~ /(\w+) { say $/.raku } (\w+)/; $text ~~ /(\w+) { say $¢.raku } (\w+)/; ทั้งสองผลลัพธ์ในการจับคู่วัตถุด้วยค่าเดียวกัน ตรรกะในการใช้อย่างใดอย่างหนึ่งมากกว่าอื่น ๆ คืออะไร?
11 regex  raku 

2
ฉันจะแยกคอลัมน์ด้วย regex เพื่อย้าย CAPS ต่อท้ายไปยังคอลัมน์แยกได้อย่างไร
ฉันพยายามแบ่งคอลัมน์โดยใช้ regex แต่ไม่สามารถแยกได้อย่างถูกต้อง ฉันพยายามใช้ CAPS ต่อท้ายทั้งหมดและย้ายไปไว้ในคอลัมน์แยกกัน ดังนั้นฉันจะได้รับแคปทั้งหมดที่มี 2-4 แคปติดต่อกัน อย่างไรก็ตามจะเป็นเพียงการออกจาก'Name'คอลัมน์ในขณะที่'Team'คอลัมน์ว่างเปล่า นี่คือรหัสของฉัน: import pandas as pd url = "https://www.espn.com/nba/stats/player/_/table/offensive/sort/avgAssists/dir/desc" df = pd.read_html(url)[0].join(pd.read_html(url)[1]) df[['Name','Team']] = df['Name'].str.split('[A-Z]{2,4}', expand=True) ฉันต้องการสิ่งนี้: print(df.head(5).to_string()) RK Name POS GP MIN PTS FGM FGA FG% 3PM 3PA 3P% FTM FTA FT% REB AST STL BLK TO DD2 TD3 PER …
11 python  regex  pandas 

8
วิธีการรับตัวเลขก่อนคำบางคำโดยใช้ regex ใน c #?
เราจะใช้ regex ด้านล่างเพื่อรับตัวเลขก่อนคำ ตัวอย่าง: 838123 บางคำ 8 บางคำ 12 บางคำ (\d+)\s*someWord แต่บางครั้งจะมีอะไรเกิดขึ้นระหว่าง Number และ word โปรดดูตัวอย่างบรรทัดด้านล่าง Ex: 43434 ของ mallord 12 สิ่งใด ๆ ที่ordord 2323 new mallord วิธีการรับตัวเลขที่แน่นอนก่อนที่คำว่าใช้ regex? กรุณาให้คำแนะนำของคุณ
10 c#  .net  regex 

5
Regex เพื่อลบศูนย์นำหน้าใน R ยกเว้นว่าอักขระตัวสุดท้าย (หรือเท่านั้น) เป็นศูนย์
gsub("(?<![0-9])0+", "", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" gsub("(^|[^0-9])0+", "\\1", c("005", "0AB", "000", "0"), perl = TRUE) #> [1] "5" "AB" "" "" นิพจน์ทั่วไปด้านบนมาจากเธรด SO นี้ซึ่งอธิบายวิธีลบศูนย์นำหน้าทั้งหมดออกจากสตริงใน R เนื่องจากการแสดงออกปกตินี้ทั้ง "000" และ "0" จะถูกเปลี่ยนเป็น "" แต่ฉันต้องการลบศูนย์นำหน้าทั้งหมดออกจากสตริงอักขระยกเว้นกรณีที่อักขระสุดท้ายปรากฏเป็นศูนย์หรืออักขระเพียงตัวเดียวคือศูนย์ "005" would become "5" "0AB" would become "AB" "000" …
9 r  regex  string  gsub  stringr 

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