2012-02-08 4 views
1

я пытаюсь соответствовать и заменить вхождения U с вами в следующих параметрах:Regex матч и заменить на аббревиатуры

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

Верховенство Я пытаюсь применять то, что сокращения не должны заменять, так UCLA остатки ucla, но каждый другой u должен заменить вас.

Я пробую это с рубином, но это не то, что я хочу точно.

"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, "you" – oldergod

+1

@oldergod - хорошо, но внутренний взгляд может быть (?! \ s | $) – pguardiario

+0

@pguardiario: Спасибо за предложение. Это и мой второй случай. – necrodome

ответ

0

вы регулярное выражение шаблон должен выглядеть следующим образом

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

они не поймают второго u. – pguardiario

+0

отредактировал вторую замену регулярных выражений. Я не видел эту точку :) –

0

Я думаю, что вы хотите следующее: "? Мой друг UCLA IC U с этой штукой ис ту вещь"

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

Спасибо, это захватывает мой первый случай. Я забыл, что у меня есть случай, который не включает пробелы. Отредактировал вопрос, чтобы отразить это. – necrodome

Смежные вопросы