我如何判断一个字符串中包含一段字符,如果有类似的字符用正则替换掉没有的话就添加新的
如intdex.aspx?keyword=123
是像用正则做这个
如果没有keyword=123
如果有用keyword=456替换keyword=123
我不想用if判断,那正则表达式能实现么
如intdex.aspx?keyword=123
是像用正则做这个
如果没有keyword=123
如果有用keyword=456替换keyword=123
我不想用if判断,那正则表达式能实现么
解决方案 »
- 关于无法识别的配置节
- 求正则表达式。在线等
- 请高手帮小弟看看我用的小孔子的这个数据库操作类有没有问题,怎么网站用着用着就崩溃呢,服务器内存都被吃玩另了
- 请教有关三层模式的问题。
- 求救DsoFramer,如果已经打开一个Excel,那么我如何去获取被选中Excel格,并且给他定义一个批注呢
- 关于虚拟主机自动开设
- 求以下正则表达式的写法??
- 一个网址:http://127.0.0.1/aa/a.aspx?id=12;想通过什么设置变为http://127.0.0.1/aa/a?id=12类似效果,好象叫伪静态,rewritepath
- 回发或回调参数无效是什么错误啊?
- 如何通过ListItem的value获得ListItem在DropDownList的索引?
- [送分]关于初学ASP.NET的几个问题
- 请大家给我个Learning Python的中文的,第一版,或者第二版的下载地址。谢谢!
那就直接替换
(?<=intdex\.aspx).*
替换成 keyword=456
Regex re=new Regex("要查找的字符");
if(re.IsMatch(sTemp))
{
sTemp=sTemp.Replace("要查找的字符","keyword=456")
}
else
{
sTemp=sTemp.Replace("要查找的字符","keyword=123")
}楼主,这么简单的问题,万万不要用正则表达式,影响效率啊..完全可以用一个IndexOf搞定.
不简简单单就这些呢
intdex.aspx?keyword=123&title=123很多呢
怎么做呢
private const string REGEX_RIGHT = @"=)[^\?\&]*";/// <summary>
/// url增加参数
/// </summary>
/// <param name="urlstr">url</param>
/// <param name="par">参数名称</param>
/// <param name="value">参数值</param>
/// <returns></returns>
public static string UrlAddPar(string urlstr, string par, string value)
{
StringBuilder str = new StringBuilder();
if (Regex.IsMatch(urlstr, REGEX_LEFT + par + REGEX_RIGHT, RegexOptions.IgnoreCase))
{
str.Append(Regex.Replace(urlstr, REGEX_LEFT + par + REGEX_RIGHT, "${left}" + value, RegexOptions.IgnoreCase));
}
else
{
if (urlstr.IndexOf('?') < 0)
{
str.Append(urlstr);
str.Append("?");
str.Append(par);
str.Append("=");
str.Append(value);
}
else
{
str.Append(urlstr);
str.Append("&");
str.Append(par);
str.Append("=");
str.Append(value);
}
}
return str.ToString();
}