正则表达式 取两字符中间的字符串(双向非贪婪模式)
2017-03-29 11:16
330 查看
/// <summary> /// 获取某字符串中间的字符串,非贪婪模式 /// </summary> /// <param name="input">全字符串</param> /// <param name="left">左边字符</param> /// <param name="right">右边字符</param> /// <returns></returns> public static List<string> GetCenterString(String input, String left, String right) { List<string> list = new List<string>(); Regex reg = new Regex(left + "(((?!" + left + ").)+?)" + right); foreach (Match m in reg.Matches(input)) { list.Add(m.Value); } return list; }
改进:添加参数是否包含左右字符
/// <summary> /// 获取某字符串中间的字符串,非贪婪模式 /// </summary> /// <param name="input">全字符串</param> /// <param name="left">左边字符</param> /// <param name="right">右边字符</param> /// <param name="isBorder">是否包含 left right 字符</param> /// <returns></returns> public static List<string> GetCenterString(String input, String left, String right, bool isBorder = true) { List<string> list = new List<string>(); Regex reg = new Regex(left + "(((?!" + left + ").)+?)" + right); foreach (Match m in reg.Matches(input)) { string value = m.Value; if (!isBorder) { value = value.Substring(left.Length, value.Length - left.Length); value = value.Substring(0, value.Length - right.Length); } list.Add(value); } return list; }
测试:
string all = @"这是一段测试数据{{dasdasdas}}这是一段测试数据{{ddd}{这是一段测试数据{{dasd}"; List<string> strList = StringPlus.GetCenterString(all, "{", "}");
输出结果:{dasdasdas}、{ddd}、{dasd}
相关文章推荐
- 正则表达式非贪婪模式和取反字符类的使用区别
- [正则表达式]-基础语法二 元字符之限定符与贪婪模式
- 正则表达式 匹配以特定字符串开头 到任意第一个字符中间的空格
- java 正则表达式获取两个字符中间的字符串
- 【JavaScript】正则表达式--非贪婪模式截取任意字符串的笔记
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。
- java 正则表达式获取两个字符中间的字符串方法
- javascript 正则表达式数量词,字符串方法(match,search,replace,split),贪婪模式,惰性模式总结
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字
- 贡献一个在匹配字符串前后插入字符的js正则表达式
- DreamWeaver、EditPlus查找两个字符之间字符串的正则表达式
- 二:字符串和正则表达式_正则表达式的模式修正符
- c#用正则表达式获得指定开始和结束字符串中间的一段文本
- 取两字符串中间字符串的正则表达式
- sas9正则表达式测试(对字符串进行字符替换)
- 二:字符串和正则表达式_正则表达式的模式修正符
- MySQL 字符串模式匹配 扩展正则表达式模式匹配
- 正则表达式,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个