Regex->;更换最多但不包括

本文关键字:不包括 gt Regex- | 更新日期: 2023-09-27 18:27:50

我正在尝试将此@Model.<A Word>替换为$Model.<A Word>$

因此,@Model.Test将变成$Model.Test$

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

Regex直到但不包括

答案是有效的。。直到我不得不替换这句话中的一个

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

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

结果

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

我希望$刚好在标题->$Model.Title$ 之后

任何帮助都将不胜感激-我是regex的新手。

Regex->;更换最多但不包括

您可以使用以下模式:

@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é

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

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

带有:

"$$$1$$"

为什么不将@Model'.('S+)与替换字符串$Model.$1$ 一起使用

试试这个(Perl/JavaScript正则表达式格式):

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

更新:

当然还有我们的朋友sed:

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

更新2:

删除了空格。