2013-08-14 2 views
0

Im пытается заменить этот @Model.<A Word> на $Model.<A Word>$Regex -> Заменить до, но не включая

так, @Model.Test стал бы $Model.Test$

При поиске SO, я нашел эту нить

Regex Until But Not Including

Какой ответ сработал ... пока я не заменил его в этом предложении

Élément @Model.Title a besoin d'être\napprouvé 

слегка Изменение ответа на: @Model\.((?:(?![ ]).)*)

Результаты с

Élément $Model.Title a$ besoin d'être\napprouvé 

Я хочу $ быть только после названия ->$Model.Title$

Любая помощь будет оценена - я совершенно новое для регулярного выражения.

+1

http://tinyurl.com/o4bb9rz –

+0

Прохладный инструмент :) - спасибо –

ответ

1

Вы можете использовать этот шаблон:

@Model\.(\w+) 

Это будет матч @Model., за которым следует один или несколько «word characters». Например:

var output = Regex.Replace(
    "Élément @Model.Title a besoin d'être\napprouvé", 
    @"@Model\.(\w+)", 
    "$$Model.$1$$"); // Élément $Model.Title$ a besoin d'être\napprouvé 
+0

Спасибо. Это сработало отлично <3 –

1

В этом случае вам определенно не нужны обходы. Так как вы только собираетесь, чтобы соответствовать слова после @Model., вы можете просто заменить следующее регулярное выражение:

"@(Model[.]\w+)" 

с:

"$$$1$$" 
0

Попробуйте (Perl/JavaScript формат регулярных выражений):

s/@(Model\.[^ ]+)/\$$1\$/g 

Update:

И конечно наш друг sed:

sed 's/@\(Model\.[^ ]\+\)/$\1$/g' 

Обновление 2:

Удаленные пространства.

+1

Вопрос отмечен C#. Почему вы отправляете Perl? Кроме того, это не будет работать, если совпадение слова не сразу сопровождается пробелом. например 'Это мой @ Model.Title!'. –

+0

Справедливый комментарий. Но вопрос, похоже, больше связан с RegExes, чем с особенностью C#, поэтому я чувствовал, что предоставляю что-то без ответа (в то время), лучше, чем оставить его без ответа. – Craig

+0

@Craig Спасибо в любом случае <3 –

1

Почему бы просто не использовать @Model\.(\S+) со строкой замены $Model.$1$

+0

@ p.s.w.g Извините, я пропустил это, ошибка исправлена. –

+0

@ p.s.w.g Я думаю, что сегодня выходной, спасибо. –

+0

Я закончил с ответом p.s.w.g, но я все равно попробовал (только для справки). Élément @ Model.Title a besoin d'être \ napprouvé still -> все еще заканчивается $ Model.Title a $ –