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

หรือที่เรียกว่านิพจน์ปกติหรือ regexp คำอธิบายของชุดสตริงมักใช้สำหรับค้นหาและตรวจสอบสตริง

3
แทนที่บรรทัดด้วยเพียงบางส่วนของบรรทัด
ฉันมีตารางขนาดใหญ่จากวิกิพีเดีย (จากแหล่งวิกิ) และฉันต้องการแยกคอลัมน์เดียวฉันเปิดมันเป็นกลุ่มและสิ่งที่ฉันต้องการแยกดูเหมือนอะไรแบบนี้ |col||[[what I want]]||another column||another one||et cetera| ทุกบรรทัดมีเนื้อหาที่ฉันต้องการดังนั้นฉันจึงพยายาม: :%s/\[\[(.+?)\]\]/\1 แต่ฉันได้รับข้อผิดพลาด E486: Pattern not found: \[\[(.+?)\]\]

3
สร้างรายการไฟล์ตามรูปแบบเวลาในชื่อไฟล์
ฉันมีอุปกรณ์บันทึกภาพของกล้องที่จะสร้างโฟลเดอร์ที่มีโครงสร้างพร้อมวิดีโอเช่นตัวอย่างด้านล่าง ฉันต้องการสร้างรายการไฟล์วิดีโอ แต่จะสร้างเฉพาะช่วงเวลาที่กำหนด เช่นระหว่าง 8:00 - 17:00 น. (วิดีโอที่อยู่นอกช่วงนี้มีคุณภาพไม่ดีเนื่องจากแสงน้อย) ชื่อไฟล์มีโครงสร้างดังนี้: [DATE Folder] AM | PM / sricam- [date] - [time] -sequence # .mp4 ด้วยตัวอย่างต่อไปนี้ตัวกรองจะแสดงเฉพาะไฟล์ที่เริ่มต้นที่ 8h08: 15 /data/20171229AM/sricam-20171229-070814-1514520494.mp4 /data/20171229AM/sricam-20171229-073814-1514522294.mp4 /data/20171229AM/sricam-20171229-080815-1514524095.mp4 /data/20171229PM/sricam-20171229-180815-1513553225.mp4 ฉันพบว่ารูปแบบการขยายรั้งสามารถกรองตัวเลข แต่วิธีการทำมันในโฟลเดอร์ย่อยทั้งหมด ฉันหวังว่าคำอธิบายของฉันจะไม่สับสนเกินไป :) ขอขอบคุณ
linux  bash  regex  grep 


1
ฉันจะประมวลผลข้อมูลนี้ด้วย regex ใน Notepad ++ ได้อย่างไร
ฉันมีการถ่ายโอนข้อมูลฐานข้อมูลมีลักษณะเช่นนี้: ; i: 23; s: 18: "Product Name1"; i: 24; s: 27: "Product Name2"; i: 25; s: 15: "ชื่อผลิตภัณฑ์ 3"; [ ... ] สิ่งที่ฉันต้องการใน Notepad ++ คือ: ชื่อผลิตภัณฑ์ 1, ชื่อผลิตภัณฑ์ 2, ชื่อผลิตภัณฑ์ 3 ฉันควรใช้ regex สำหรับการค้นหาและแทนที่ใน Notepad ++ สิ่งที่ฉันได้ใกล้เคียงที่สุดคือ^"."$แต่มันไม่พบสตริง

1
BASH: grep นับคำเดียวกันที่เกิดขึ้น
เป็นไปได้หรือไม่ที่จะนับจำนวนครั้งสูงสุดของคำในสตริงโดยใช้ grep เท่านั้น นี่คือตัวอย่างของสิ่งที่ฉันต้องการ: script.sh "aaaa bbbb ccc bbbb azesd bbbb" จะกลับมา bbbb 3 ขอขอบคุณ แก้ไข: ฉันพบวิธีแก้ปัญหา ขอบคุณ
bash  regex  grep 

2
การลบ White Space ออกจากผลลัพธ์ของ Regex
ฉันมีคำสั่ง Regex ที่ทำงานเพื่อค้นหาข้อมูล: การจับคู่เป็นตัวเลข 9 หลัก (ไม่มากไม่น้อย) -กับบางส่วนถูกคั่นด้วยช่องว่างหรือ (?:\d{9}\s)|(\d{3}[ -]\d{3}[ -]\d{3}) ปัญหาที่ฉันมีกับผลลัพธ์คือการ(?:\d{9}\s)คืนค่าอักขระช่องว่างต่อท้ายหรือแท็บหรือบรรทัดใหม่ - แต่จะป้องกันไม่ให้ส่งคืนผลลัพธ์ 9 หลักจากลำดับตัวเลข 10 หลัก ฉันจะเปลี่ยนสิ่งนี้อย่างไรเพื่อลบพื้นที่สีขาวในผลลัพธ์หรือทำงานเพื่อดึงข้อมูล\d{9}(ในขณะที่ไม่ส่งคืน 9 หลักจากหมายเลข 10 หลักหรือมากกว่า)
regex 

0
แทนที่การจับคู่กลุ่มที่มีชื่อหลายรายการในกลุ่มการแข่งขันเดียว
ฉันใช้นิพจน์ปกติเพื่อสร้าง SQL จากไฟล์ข้อความที่มีข้อมูล "ส่วนหัว" (RecordType, Order) และ "child" (ProdCode) ข้อมูล ฉันต้องการคำแถลงสำหรับรายการย่อยแต่ละรายการไม่ใช่เฉพาะส่วนหัวแต่ละรายการ ไฟล์มีลักษณะดังนี้: RecordType:Amend OrderNo:Order1 ProdCode:Product1 ProdCode:Product2 RecordType:Create OrderNo:Order2 ProdCode:Product3 ProdCode:Product4 จากที่ฉันต้องการได้รับนี้: insert into #Reset (RecordType, OrderNo, ProdCode) values ('Amend', 'Order1', 'Product1') insert into #Reset (RecordType, OrderNo, ProdCode) values ('Amend', 'Order1', 'Product2') insert into #Reset (RecordType, OrderNo, ProdCode) values ('Create', 'Order2', …

1
regex เพื่อจับคู่ทุกอย่าง แต่สตริงเริ่มต้นด้วย hashkey
ฉันกำลังสร้าง regex เพื่อกรองสตริงย่อยใด ๆ ที่ขึ้นต้นด้วย '#' หรือ '@' ฉันพยายามกรองทวีตจากสิ่งเหล่านั้น ขณะนี้มันตรงกับทุกอย่างไม่ว่าสตริงจะมีคำที่ขึ้นต้นด้วย '#' หรือ '@' ((?!\#)|(?!\@)).* ในสตริงด้านล่างนี้ฉันต้องการจับคู่ทุกอย่างด้วยตัวหนา แต่ไม่ต้องเพิ่มเติม: สวัสดี shah rukh ใครคือผู้ร่วมแสดงในภาพยนตร์ที่จะมาถึง @iamsrk #lovefrommalaysia #askSRK ฉันต้องการให้ช่องว่างระหว่างคำเป็นตัวหนา ฉันจะบรรลุสิ่งนี้ได้อย่างไร สิ่งนี้จะถูกใช้ใน python FYI

1
ค้นหาและแทนที่ด้วยจุดเดียวหลาย ๆ ชุดของสองจุดที่แนบมากับส่วนท้ายของคำ
(...)ฉันต้องการที่จะเปลี่ยนชุดของจุดสองจุดในเอกสารทุกด้วยจุดเดียวไม่รวมกรณีที่มีสามจุดในแถวนั่นคือจุดไข่ปลาเขียน กระนั้นชุดของจุดสองจุดจะปรากฏขึ้นแนบท้ายคำเสมอในขณะที่ช่องว่างตามหลังพวกเขาเช่น abbr..ย่อคำสามารถเรียกโดยย่อว่า แต่พหูพจน์ควรnot...หรือควร ฉันจะทำสิ่งนี้โดยใช้เครื่องมือค้นหาและแทนที่หรือแมโครได้อย่างไร

2
แทนที่การประทับเวลาด้วยจำนวนที่เพิ่มขึ้น
สวัสดีอีกครั้ง Superuser! ฉันมีไฟล์ประมาณ 40 ไฟล์. txt พร้อมแถวเช่นนี้ 11:20 : Go to lunch 13:40 : Go to parkinglot 14:40 : Wait for flight to arrive .. (and so on for ~90 lines per txt file) และฉันต้องการเปลี่ยนเป็น: 1. Go to lunch 2. Go to parkinglot 3. Wait for flight to arrive ... …

2
วิธีแยกวิเคราะห์เอาต์พุตคำสั่งเป็น 5 หลักสุดท้าย?
จากคำสั่ง watch -n1 "ifconfig eth0 | grep GiB" ฉันได้รับผลลัพธ์ด้านล่าง ตอนนี้ฉันแค่ต้องการตัวเลข 5 ตัวสุดท้ายก่อน (GiB) ฉันเขียน regex สำหรับมันและดูเหมือนว่าจะทำงาน (\d{1,4})(?!.*\d)\sGiB ปัญหาเดียวคือฉันไม่สามารถใช้กับคำสั่งฉันแสดงให้เห็นข้างต้น? ฉันใช้อูบุนตูด้วยความช่วยเหลือใด ๆ

2
ค้นหาแทนที่ขยายในไฟล์ html
ฉันมีคำถามเล็กน้อย ฉันมีไฟล์ html ขนาดใหญ่และต้องการแทนที่สิ่งต่าง ๆ มากมายภายในหลายครั้ง ปัญหาเดียวที่ฉันไม่สามารถแก้ไขได้คือแทนที่ด้วยตัวแปร ตัวอย่าง: <image src="start_files\0002.jpg" style="width:216pt; height:162"> ควรถูกแปลงเป็น <a href="start_files\0002.jpg" target="_blank"><image src="start_files\0002.jpg" style="width:216pt; height:162"></a> คุณมีความคิดว่าจะทำอย่างไร ฉันมีระบบ windows ที่มี Notepad2 และ Notepad ++ และฉันสามารถติดตั้งเครื่องมือใหม่ได้ถ้าต้องการ (เช่น Windows SED) ทางออกที่ดีที่สุดจะเป็นชุดโซลูชันที่ฉันสามารถเพิ่มการแปลงอื่น ๆ หวังว่าคุณจะมีความคิดที่ดี!

3
Nginx ให้บริการเฉพาะไฟล์คงที่ไม่รวม php
การกำหนดค่าปัจจุบันนี้ใกล้เคียงกับการทำงาน ปัญหาเดียวก็คือมันจะให้บริการไฟล์ php ของฉันเป็นไฟล์แบบคงที่ (แทนที่จะส่งพวกเขาออกไป apache2 ทำงานบนพอร์ต 81) ฉันรู้ว่ามันผิดปกติกับบรรทัดlocation ~ .+(?<!\.php)นี้ ฉันมีไวยากรณ์ lookahead เชิงลบผิดหรือไม่ server { listen 80; listen [::]:80; root /var/www/example.com; index index.php; server_name example.com; location ~ .+(?<!\.php) { try_files $uri $uri @php; } location @php { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass http://127.0.0.1:81; proxy_redirect …

1
วิธีการแยกเพียงส่วนหนึ่งของสตริง
ฉันมีไฟล์แบตช์โดยใช้ wget และ grep ที่ดาวน์โหลดเว็บไซต์จากนั้นแยกสตริงที่ร่วงออกมาจากซอร์สโค้ด <p>11.59 €</p> อย่างที่คุณเห็น grep รวมแท็กวรรคซึ่งฉันต้องการแยกออก จะทำอย่างไร?
regex  grep 

2
แสดงเส้นที่ตรงกันสำหรับ regex ที่กำหนดที่ Linux
ฉันใช้สัญกรณ์ที่ไฟล์บันทึกของฉัน: [บางสิ่งบางอย่างบางสิ่งบางอย่าง] บางสิ่งจำเป็นและอักขระความยาวแปรผันและตัวเลข ไฟล์บันทึกพิเศษของฉันมีบรรทัดที่มีตัวอักษรอธิบายด้านบน นั่นคือ Line 1: DEBUG [AS-kmksdf] Error occured! Line 2: something somethingg.. ฉันต้องการรับบรรทัดที่ 1 ไฟล์บันทึกของฉันเติบโตขึ้นแบบไดนามิกและฉันแสดงที่หน้าจอด้วย tail -f log.txt ฉันจะแสดงบรรทัดพิเศษนั้นได้อย่างไร ฉันรู้ว่าฉันจะใช้ grep และ regex ของฉันจะเป็น sth ชอบ [[A-Z]*-[A-Z]*] วิธีรวมเข้ากับคำสั่งนั้น สิ่งนี้ใช้ไม่ได้: tail -f log.txt | grep [[A-Z]*-[A-Z]*] ฉันใช้ cygwin กับ windows7 และสามารถเรียกใช้คำสั่ง linux บน cmd.exe ของฉันได้
-1 linux  regex  grep  tail 

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