วิธีใช้ REGEX เพื่อใช้อักษรตัวแรกของแต่ละคำในประโยคให้เป็นตัวพิมพ์ใหญ่?


4

ฉันต้องการใช้นิพจน์ทั่วไป (REGEX) เพื่อใช้อักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่ในประโยค

ฉันได้ผลลัพธ์เหมือนกันในภาษาการเขียนโปรแกรม แต่ดูเหมือนว่าการใช้นิพจน์ทั่วไปจะกระชับยิ่งขึ้น


คุณจะรับมือกับกรณีที่คุณมีตัวย่อได้อย่างไร? โปรดให้ตัวอย่างจากภาษาอื่น ๆ ที่คุณได้ทำสิ่งนี้มา
เดวิด

เช่น "การทดสอบการทดสอบ" ควรกลับมา "การทดสอบการทดสอบ" ฉันทำงานกับ MSL และรหัสนี้ทำสิ่งเดียวกัน แต่ฉันรู้ว่ามีวิธีการใช้นามแฝง regex reg {var% x = 1,% y = $$ 1 ,% z ในขณะที่ (% x <= $ numtok (% y, 32)) {% z =% z $ + ($ บน ($ ซ้าย ($ gettok (% y,% x, 32), 1)), $ mid ($ gettok (% y,% x, 32), $ iif ($ len ($ gettok (% y,% x, 32)) == 1, $ ลบ (% x, $ right ($ gettok (% y % x 32), 1)), $ + (- $ Calc ($ len ($ gettok (% Y% x 32)) - 1))))) Inc% x} ผลตอบแทน% Z}
Sirius_Black

นอกจากนี้คุณต้องการใช้ regex ประเภทใด เช่น PCRE POSIX? มีความแตกต่างที่ลึกซึ้งและทำให้เกิดความแตกต่างกับที่และ / หรือภาษาใดที่คุณต้องการใช้ REGEX ใน
เดวิด

ภาษาสคริปต์ mirc นั้นใช่ไหม?
David

คำตอบ:


3

ตัวอย่างการใช้sedคำสั่ง

~$ echo "foo bar" | sed  's/^\(.\)/\U\1/'

ที่ไหน:

  • ^หมายถึงการเริ่มต้นของบรรทัด
  • . ตรงกับตัวละครใด ๆ
  • \U แปลงเป็นตัวพิมพ์ใหญ่
  • \( ... \)ระบุส่วนที่จะอ้างอิงในภายหลัง(เช่น\1ในกรณีนี้ )

ฉันคิดว่าฉันสามารถใช้ /^(.))(?<=\s)(.)/g หรือ / \ b (\ S) / g แต่ขอขอบคุณ
Sirius_Black

1
\U- ทุกสิ่งที่ตามมาเป็นตัวพิมพ์ใหญ่ตัว\uละครถัดไปเป็นตัวพิมพ์ใหญ่เท่านั้น
Mark Jeronimus

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