0

我试图将其替换@Model.<A Word>$Model.<A Word>$

所以,@Model.Test会变成$Model.Test$

在搜索SO时,我发现了这个线程

正则表达式直到但不包括

哪个答案有效..直到我不得不在这句话中替换一个

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

将答案稍微修改为:@Model\.((?:(?![ ]).)*)

结果与

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

我希望 $ 在 Title 之后 ->$Model.Title$

任何帮助将不胜感激 - 我对正则表达式很陌生。

4

4 回答 4

1

在这种情况下,您绝对不需要环顾四周。由于您只是要匹配 之后的单词@Model.,因此您可以替换以下正则表达式:

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

和:

"$$$1$$"
于 2013-08-14T13:57:52.480 回答
1

您可以使用此模式:

@Model\.(\w+)

这将匹配@Model.后跟一个或多个“单词字符”。例如:

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é
于 2013-08-14T13:58:39.330 回答
1

为什么不只使用@Model\.(\S+)替换字符串$Model.$1$

于 2013-08-14T13:59:52.080 回答
0

Try this (Perl/JavaScript regex format):

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

Update:

And of course our friend sed:

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

Update 2:

Removed spaces.

于 2013-08-14T13:59:51.923 回答