固定字符串正则表达式 C#

本文关键字:正则表达式 字符串 | 更新日期: 2023-09-27 18:21:19

大家好,我想知道一些关于正则表达式中的固定字符串的信息。如何表示固定字符串,而不考虑 C# 中的特殊字符或字母数字?

例如;看看下面的字符串:

infinity.world.uk/Members/namelist.aspx?ID=-1&fid=X

X

之前的整个字符串将是固定字符串(即整个句子看起来相同(,但只有 X 是十进制变量。

我想要的是我想将十进制数 X 附加到固定字符串。如何用 C# 正则表达式来表达这一点。

感谢您的帮助

固定字符串正则表达式 C#

string fulltext = "inifinity.world.uk/Members/namelist.aspx?ID=-1&fid=" + 10;

如果您需要修改现有 URL,请不要使用正则表达式,string.Formatstring.Replace遇到参数编码问题

请改用 Uri 和 HttpUtility:

var url = new Uri("http://infinity.world.uk/Members/namelist.aspx?ID=-1&fid=X");
var query = HttpUtility.ParseQueryString(url.Query);
query["fid"] = 10.ToString();
var newUrl = url.GetLeftPart(UriPartial.Path) + "?" + query;

结果:http://infinity.world.uk/Members/namelist.aspx?ID=-1&fid=10

例如,使用query["fid"] = "%".ToString();可以正确生成http://infinity.world.uk/Members/namelist.aspx?ID=-1&fid=%25

演示:https://dotnetfiddle.net/zZ9Y1h

String.Format 是替换字符串中标记值的一种方法,如果这是您想要的。 在下面的示例中,{0}是一个标记,String.Format 采用 fixedString 并将令牌替换为 myDecimal 的值。

string fixedString = "infinity.world.uk/Members/namelist.aspx?ID=-1&fid={0}";
decimal myDecimal = 1.5d;
string myResultString = string.Format(fixedString, myDecimal.ToString());