簡體   English   中英

正則表達式替換找到的匹配靜態字

[英]Regex replace found match with static word

我的意見是:

Foo 12;
Foo 5534;
Foo 1;

我想替換

Foo (\\d+?); Foo NUM;

結果將是:

Foo NUM;
Foo NUM;
Foo NUM;

我的模式是:

Regex.Replace(line, "Foo (\d+?);", "NUM");

但這似乎不起作用。 那有什么不對?

在您的代碼中,您匹配Foo (\\d+?); 並將該匹配替換為NUM ,這將是文字結果。 但是你想要保留的替代品不是數字,而是FOO

您可以使用Foo的捕獲組並在替換中使用該捕獲組以相反的方式進行替換。

Regex.Replace(line, @"(Foo) \d+;", "$1 NUM;")

你可以省略使用問號制作\\d+非貪婪。

正則表達式演示 | C#演示

在此輸入圖像描述

解決方案沒有正則表達式

如果你的最后一個字總是數字而你想用“NUM”替換它,那么你可以這樣做

line.Replace(line.Split(' ').Last(), "NUM");

POC: .Net小提琴

使用這個正則表達式:

Regex.Replace(line, @"Foo (\d+?);", "NUM;");

在正則表達式之前你只需要@ 在這里你可以測試你的正則表達式:

正則表達式測試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM