2012-02-08 33 views
1

我想匹配,並且在以下替換爲你的U出現:正則表達式匹配和替換的縮寫

"my friend u.c.l.a i c u. c that thing? u c that thing?" 
"u.s should see u." 

我想執行的規則是縮寫不應取代,所以UCLA遺體ucla,但其他所有你應該替換你。

我想這與紅寶石,但這不是我想要的。

"my friend u.c.l.a i c u. c that thing? u c that thing?".gsub! /\bu(?!\.)\b/i, "you" 
"u.s should see u.".gsub! /\bu(?!\.)\b/i, "you" 
+1

.gsub! /\bu(?!\.(?!\s))\b/i,「你」 – oldergod 2012-02-08 04:04:04

+1

@oldergod - 很好,但內在的前瞻應該可能是(?!\ s | $) – pguardiario 2012-02-08 04:31:19

+0

@pguardiario:謝謝你的建議。這也處理我的第二種情況。 – necrodome 2012-02-08 04:47:45

回答

0

你正則表達式應該是這樣的

"my friend u.c.l.a i c u. c that thing? u c that thing?".gsub! /\bu(?!\.(?!\s))\b/i, "you"; 
+0

這些不抓住第二個你。 – pguardiario 2012-02-08 04:23:34

+0

編輯了第二個正則表達式替換。我沒有看到那個點:) – 2012-02-08 04:33:45

0

我想你想的以下內容: 「?我的朋友加州大學洛杉磯分校的ICüÇ那件事UC那些事兒」

"my friend u.c.l.a i c u. c that thing? u c that thing?".gsub!(/\bu(?!\.(?!\s))\b/i, 'you') 
+0

謝謝,這抓住了我的第一個案例。我忘了我有一個不涉及空白的案例。編輯這個問題來反映這一點。 – necrodome 2012-02-08 04:37:02