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

การแทนที่คือการดำเนินการค้นหาสตริงย่อยและแทนที่ด้วยสตริงอื่น

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 …

8
สคริปต์ PowerShell เพื่อค้นหาและแทนที่สำหรับไฟล์ทั้งหมดที่มีนามสกุลเฉพาะ
ฉันมีไฟล์คอนฟิกูเรชันหลายไฟล์ใน Windows Server 2008 ซ้อนกันดังนี้: C:\Projects\Project_1\project1.config C:\Projects\Project_2\project2.config ในการกำหนดค่าของฉันฉันต้องทำการแทนที่สตริงเช่นนี้: <add key="Environment" value="Dev"/> จะกลายเป็น: <add key="Environment" value="Demo"/> ฉันคิดเกี่ยวกับการใช้สคริปต์แบทช์ แต่ไม่มีวิธีที่ดีในการทำเช่นนี้และฉันได้ยินมาว่าด้วยสคริปต์ PowerShell คุณสามารถดำเนินการนี้ได้อย่างง่ายดาย ฉันพบตัวอย่างของการค้นหา / แทนที่ แต่ฉันหวังว่าจะมีวิธีที่จะสำรวจโฟลเดอร์ทั้งหมดภายในไดเร็กทอรี C: \ Projects ของฉันและค้นหาไฟล์ใด ๆ ที่ลงท้ายด้วยนามสกุล ".config" เมื่อพบหนึ่งฉันต้องการให้มันแทนที่ค่าสตริงของฉัน แหล่งข้อมูลที่ดีในการค้นหาวิธีการทำสิ่งนี้หรือผู้เชี่ยวชาญด้าน PowerShell ที่สามารถให้ข้อมูลเชิงลึกได้บ้าง?

6
เงื่อนไขแทนที่นุ่น
ฉันมี DataFrame และฉันต้องการแทนที่ค่าในคอลัมน์ใดคอลัมน์หนึ่งที่เกินค่าด้วยศูนย์ ฉันคิดว่านี่เป็นวิธีหนึ่งในการบรรลุสิ่งนี้: df[df.my_channel > 20000].my_channel = 0 ถ้าฉันคัดลอกช่องไปยัง data frame ใหม่มันง่ายมาก: df2 = df.my_channel df2[df2 > 20000] = 0 สิ่งนี้ทำในสิ่งที่ฉันต้องการ แต่ดูเหมือนว่าจะไม่ทำงานกับช่องเป็นส่วนหนึ่งของ DataFrame ดั้งเดิม


6
Ruby แทนที่สตริงด้วยรูปแบบ regex ที่จับ
ฉันมีปัญหาในการแปลสิ่งนี้เป็น Ruby นี่คือส่วนหนึ่งของ JavaScript ที่ทำในสิ่งที่ฉันต้องการทำ: function get_code(str){ return str.replace(/^(Z_.*): .*/,"$1")​​​​​​​​​​​​​​​​​​​​​​​​​​​; } ฉันได้พยายามgsub , ย่อยและแทนที่แต่ไม่มีดูเหมือนจะทำสิ่งที่ผมคาดหวังว่า นี่คือตัวอย่างของสิ่งที่ฉันได้ลอง: "Z_sdsd: sdsd".gsub(/^(Z_.*): .*/) { |capture| capture } "Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "$1") "Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "#{$1}") "Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "\1") "Z_sdsd: sdsd".gsub(/(.).*/) { |capture| capture }
121 ruby  regex  replace 

5
Eclipse ค้นหานิพจน์ทั่วไปและแทนที่
ใน eclipse เป็นไปได้ไหมที่จะใช้สตริงการค้นหาที่ตรงกันเป็นส่วนหนึ่งของสตริงการแทนที่เมื่อทำการค้นหานิพจน์ทั่วไปและแทนที่ โดยทั่วไปฉันต้องการแทนที่การเกิดขึ้นทั้งหมดของ variableName.someMethod() ด้วย: ((TypeName)variableName.someMethod()) ที่ไหน variableNameสามารถเป็นชื่อตัวแปรใด ๆ ก็ได้ ในsedฉันสามารถใช้สิ่งต่างๆเช่น: s/[a-zA-Z]+\.someMethod\(\)/((TypeName)&)/g นั่นคือ, &แสดงถึงสตริงการค้นหาที่ตรงกัน มีอะไรที่คล้ายกันใน Eclipse หรือไม่? ขอบคุณ!
119 regex  eclipse  replace 

10
ค้นหาและแทนที่ใน Vim ในไฟล์โครงการทั้งหมด
ฉันกำลังมองหาวิธีที่ดีที่สุดในการค้นหาและแทนที่ (พร้อมการยืนยัน) ในไฟล์โครงการทั้งหมดใน Vim โดย "ไฟล์โครงการ" ฉันหมายถึงไฟล์ในไดเร็กทอรีปัจจุบันซึ่งบางไฟล์ไม่จำเป็นต้องเปิด วิธีหนึ่งในการดำเนินการนี้คือเพียงแค่เปิดไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบัน: :args ./** จากนั้นทำการค้นหาและแทนที่ไฟล์ที่เปิดอยู่ทั้งหมด: :argdo %s/Search/Replace/gce อย่างไรก็ตามเมื่อฉันทำสิ่งนี้การใช้งานหน่วยความจำของ Vim จะเพิ่มขึ้นจากสองสิบ MB เป็นมากกว่า 2 GB ซึ่งไม่ได้ผลสำหรับฉัน ฉันยังมีEasyGrepปลั๊กอินติดตั้ง CtrlCแต่มันเกือบจะไม่เคยทำงาน-อย่างใดอย่างหนึ่งไม่พบเหตุการณ์ทั้งหมดหรือมันก็แฮงค์จนผมกด เพื่อให้ห่างไกลวิธีที่ต้องการของฉันที่จะทํางานนี้มันack-grepสำหรับคำค้นหาที่ใช้หน้าต่าง QuickFIX มันเปิดไฟล์ใด ๆ :bufdo %s/Search/Replace/gceที่มีคำว่าและไม่ได้เปิดมาก่อนและในที่สุด ฉันกำลังมองหาปลั๊กอินที่ใช้งานได้ดีที่สามารถใช้สำหรับสิ่งนี้หรืออีกทางหนึ่งคือคำสั่ง / ลำดับของคำสั่งที่จะง่ายกว่าที่ฉันใช้อยู่ตอนนี้
117 vim  replace 

3
JavaScript แทนที่ / regex
ให้ฟังก์ชันนี้: function Repeater(template) { var repeater = { markup: template, replace: function(pattern, value) { this.markup = this.markup.replace(pattern, value); } }; return repeater; }; ฉันจะทำการthis.markup.replace()แทนที่ทั่วโลกได้อย่างไร นี่คือปัญหา ถ้าฉันใช้แบบนี้: alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup); ค่าของการแจ้งเตือนคือ "foobar $ TEST_ONE" หากฉันเปลี่ยนRepeaterสิ่งต่อไปนี้จะไม่มีสิ่งใดมาแทนที่ใน Chrome: function Repeater(template) { var repeater = { markup: template, replace: function(pattern, value) { this.markup …

6
ค้นหาส่วนกลางและแทนที่ใน Vim โดยเริ่มจากตำแหน่งเคอร์เซอร์และล้อมรอบ
เมื่อฉันค้นหาด้วย/ คำสั่งโหมดปกติ: /\vSEARCHTERM Vim เริ่มการค้นหาจากตำแหน่งเคอร์เซอร์และลงไปเรื่อย ๆ โดยตัดไปด้านบน อย่างไรก็ตามเมื่อฉันค้นหาและแทนที่โดยใช้:substituteคำสั่ง: :%s/\vBEFORE/AFTER/gc กลุ่มเริ่มต้นที่ด้านบนสุดของไฟล์แทน มีวิธีทำให้ Vim ทำการค้นหาและแทนที่โดยเริ่มจากตำแหน่งเคอร์เซอร์และห่อรอบ ๆ ไปด้านบนเมื่อถึงจุดสิ้นสุดหรือไม่?
112 search  vim  replace 

4
ฉันจะแทนที่การจับคู่สตริงย่อย regex ใน Javascript ได้อย่างไร
var str = 'asd-0.testing'; var regex = /asd-(\d)\.\w+/; str.replace(regex, 1); ที่มาแทนที่สตริงทั้งหมดที่มีstr 1ฉันต้องการให้มันแทนที่สตริงย่อยที่ตรงกันแทนที่จะเป็นสตริงทั้งหมด เป็นไปได้ใน Javascript หรือไม่?

9
VIM แทนที่คำด้วยเนื้อหาของ paste buffer หรือไม่
ฉันต้องการแทนที่คำหลายคำในไฟล์และต้องการทำด้วยคำสั่ง vi ไม่ใช่คำสั่ง EX เช่น:%s///g. ฉันรู้ว่านี่เป็นวิธีทั่วไปที่เราแทนที่คำที่ตำแหน่งเคอร์เซอร์ปัจจุบัน: cw<text><esc>แต่มีวิธีดำเนินการกับเนื้อหาของรีจิสเตอร์ที่ไม่มีชื่อเป็นข้อความแทนที่หรือไม่โดยไม่เขียนทับรีจิสเตอร์
110 vim  replace  buffer  paste 

5
วิธีค้นหาการเว้นวรรคมากกว่าหนึ่งช่องระหว่างคำในบรรทัด
วิธีค้นหาการเว้นวรรคมากกว่าหนึ่งช่องระหว่างคำในบรรทัด 1. this is a line containing 2 spaces 2. this is a line containing 3 spaces 3. this is a line containing multiple spaces first second three four ทั้งหมดข้างต้นเป็นการจับคู่ที่ถูกต้องสำหรับ regex นี้ ฉันควรใช้ regex อะไร
110 regex  eclipse  replace 

5
จะแทนที่ข้อความในคอลัมน์ของ Pandas dataframe ได้อย่างไร?
ฉันมีคอลัมน์ในดาต้าเฟรมของฉันดังนี้: range "(2,30)" "(50,290)" "(400,1000)" ... และฉันต้องการแทนที่,เครื่องหมายจุลภาคด้วย-เส้นประ ฉันกำลังใช้วิธีนี้ แต่ไม่มีอะไรเปลี่ยนแปลง org_info_exc['range'].replace(',', '-', inplace=True) ใครสามารถช่วย?


5
วิธีการแทนที่หลายสตริงในไฟล์โดยใช้ PowerShell
ฉันกำลังเขียนสคริปต์สำหรับปรับแต่งไฟล์คอนฟิกูเรชัน ฉันต้องการแทนที่สตริงหลายอินสแตนซ์ภายในไฟล์นี้และฉันพยายามใช้ PowerShell เพื่อทำงาน ใช้งานได้ดีสำหรับการแทนที่เพียงครั้งเดียว แต่การแทนที่หลายครั้งนั้นช้ามากเพราะทุกครั้งที่ต้องแยกวิเคราะห์ไฟล์ทั้งหมดอีกครั้งและไฟล์นี้มีขนาดใหญ่มาก สคริปต์มีลักษณะดังนี้: $original_file = 'path\filename.abc' $destination_file = 'path\filename.abc.new' (Get-Content $original_file) | Foreach-Object { $_ -replace 'something1', 'something1new' } | Set-Content $destination_file ฉันอยากได้อะไรแบบนี้ แต่ไม่รู้จะเขียนยังไง: $original_file = 'path\filename.abc' $destination_file = 'path\filename.abc.new' (Get-Content $original_file) | Foreach-Object { $_ -replace 'something1', 'something1aa' $_ -replace 'something2', 'something2bb' $_ -replace 'something3', …

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