正则表达式获取子字符串,包括开始值和结束值

本文关键字:开始 结束 包括 获取 字符串 正则表达式 | 更新日期: 2023-09-27 18:32:52

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

例如:

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");

这将返回:

为自来水系统提供政府和管理 在城市和收取租金、费率和水费

我正在寻找:

规定水务和管理的章程 城市工程系统以及租金、差饷和 水费。

正则表达式获取子字符串,包括开始值和结束值

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

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

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

Regex regex = new Regex("(?i)A Bylaw(.*)''.");

这为您提供了不为"A Bylaw"的情况而烦恼的比赛结果。

如果您通过的文本有"附则",那么这非常有效。

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

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

  • ('.|^)?将匹配文本的点或开头,对第一个短语有用
  • [^.]*将匹配任何不是点的内容
  • Bylaw就是您要搜索的内容
  • .*?将匹配任何东西,直到...
  • ('.|$)将匹配短语的结束点

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