正则表达式获取包含起始值和结束值的子字符串

时间:2013-09-26 16:52:22

标签: c# regex substring

我想使用正则表达式来提取包含开始值和结束值的字符串。

例如:

Regex regex = new Regex("A Bylaw(.*?)" + @"\.");
var v = regex.Match("blah blah blah A Bylaw to provide for the government and management of the Water Works System in the City and the collection of Rents, Rates, and charges for water. blah blah blah");

返回:

  

提供水务系统的政府和管理   在城市和收集租金,价格和水费

我正在寻找:

  

规定政府和水管理的章程   城市中的工作系统以及租金,费率和收入   收费水。

3 个答案:

答案 0 :(得分:1)

只需更改正则表达式即可包含它们

Regex regex = new Regex(@"A (Bylaw.+?\.)");

http://rubular.com/r/4GRUECzqfx

答案 1 :(得分:0)

Regex regex = new Regex(“(?i)A Bylaw(。*)\。”);

这为您提供了不打扰“A章程”案例的匹配结果。

如果您传递的文字有“A BYLAW”,那么这完全有效..

@Sam我很感谢您发布的链接。

答案 2 :(得分:0)

据我了解,您尝试从文本中提取包含关键字的短语,为此,您可以使用:var regex = new Regex(@"(\.|^)?([^.]*Bylaw.*?(\.|$))"); https://regex101.com/r/KjxWWC/1

  • (\.|^)?将匹配文字的点或开头,对第一个短语
  • 有用
  • [^.]*将匹配任何不是点
  • 的内容
  • Bylaw正在搜索
  • .*?将匹配任何内容,直到......
  • (\.|$)将匹配短语
  • 的结束点

请注意,如果您在文字var matches = regex.Matches("...")上使用该结果,则结果将显示在matches[n].Groups[1]