如:string str=“17春六年级数学班(1次),17年夏季创意美术班(1次),17暑假写作(1次)”
把这字符串小括号中的次替换成别的内容
期望:str=“17春六年级数学班(1课时),17年夏季创意美术班(1课时),17暑假写作(1课时)”
只要替换小括号里的“次”,替换成其他内容,即可。
"aa(11次)".replace(/\(\d+次\)/,function(e){return e.replace('次','课时')})
正则替换.使用前瞻后顾找到次.然后替换成课时
regex.replate(str,"(?<=([0-9]+).*?(?=))","课时");
大神, 我试了, 这个正则不行。
@奇妙能力: 因为括号要转义!!这种问题都要我说吗?
@吴瑞祥: ,,,大神呀, 你没看到我是菜鸟吗?所以辛苦一下。说个正确的。
@奇妙能力: 你是JS 还是c#? JS和C#的转移不一样
JS 每个\ 都要加双\\ C#就方便了 直接在字符串加@
遇到正则转移 还是按照正常的比如 /^ 就不会当成^了
str=str.Replace("次","课时");
只能匹配小括号里的,如果我小括号外面的“次”是不能被替换的。
你需要先用正则表达式找到内容
@金琥: 就是不会, 所以才在博客园中提问呀 。
@奇妙能力: 可以替换了,你去试试
string str = "17春六年级数学班(1次),17年夏季创意美术班(1次),17暑假写作(1次)"; string r = System.Text.RegularExpressions.Regex.Replace(str, @"\(1.*?\)", "(1课时)"); MessageBox.Show(r);
@金琥: 大神, 只要匹配单位, 不要匹配数量, 只要改小括号里的单位,可以不可以回复的时候看下问题。
@奇妙能力:
protected string Replace(System.Text.RegularExpressions.Match m) { return m.Groups[0].Value.Replace("次", "课时"); } string str = "17春六年级数学班(1次),哈次,17年夏季创意美术班(5次),17暑假写作(8次),次级"; str = System.Text.RegularExpressions.Regex.Replace(str, @"\([^)]+\)", Replace);
转自:http://ask.csdn.net/questions/648487