(?<=,).+(?=\)) 获取 , 和 ) 之间的 字符串 不包括两字符
,(.*)\) 获取 , 和 ) 之间的 字符串 包括两字符
(,).+(?=\)) 获取 , 和 ) 之间的 字符串 包括 , 不包括 )
// 例如我想把如下格式记录中的NAME值修改为WANG
string line = "ADDR=1234;,NAME)=ZHANG;,PHONE)=6789";
Regex reg = new Regex(@"(?<=,).+(?=\))");
//例如我想提取记录中的NAME值
Match match = reg.Match(line);
string value = match.Groups[1].Value;
var bb = Regex.Match(line, @"(?<=,).+?(?=\))");
var cc = Regex.Match(line, @"(?<=,).*?(?=\))");
合并多个空格
string ee =new Regex("[\\s]+").Replace(dd," ");
别人网上的 正则表达式匹配两个特殊字符中间的内容 - GuoZeping - 博客园
匹配两个字符串A与B中间的字符串包含A与B: 表达式: A.*?B(“.“表示任意字符,“?”表示匹配0个或多个)
示例: Abaidu.comB
结果: Awww.apizl.comB
匹配两个字符串A与B中间的字符串包含A但是不包含B:
表达式: A.*?(?=B)
示例: Awww.apizl.comB
结果: Awww.apizl.com
匹配两个字符串A与B中间的字符串且不包含A与B:
表达式: (?<=A).*?(?=B)
这种写法没看懂,我猜测是如果不包含前面匹配的字符写法(?<=要匹配的开始字符),不包含后面要匹配的字符写法(?=要匹配的结束字符)
示例: Awww.baidu.comB
结果: www.baidu.com
要想换行匹配得把点 . 替换成 [\s\S]
匹配不到正确的第一个满足的节点
上面是错误的,下面是正确的
如果要获取两个 , 之间 第一个匹配结果
就使用
(?<=^\w[^,]*,)\w+(?=,)