我想使用regex提取一个字符串,包括起始值和结束值。
例如:
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");
这将返回:
本条例旨在为市政水务系统的政府及管理及收取租金、差饷及水费订定条文。
我在找:
一项规定城市水务系统的政府和管理及收取租金、差饷和水费的附例。
发布于 2013-09-26 17:06:52
只需将正则表达式更改为包含它们即可。
Regex regex = new Regex(@"A (Bylaw.+?\.)");
http://rubular.com/r/4GRUECzqfx
发布于 2013-09-26 17:58:50
=新Regex("(?i)A Bylaw(.*).");
这给你的比赛结果,不麻烦的情况下“一个附例”。
如果你所通过的文本有“附例”,那么这是完美的..。
@我是,非常感谢你发布的链接。
发布于 2016-11-16 12:26:27
据我所知,您尝试从文本中提取包含关键字的短语,为此,可以使用:var regex = new Regex(@"(\.|^)?([^.]*Bylaw.*?(\.|$))");
https://regex101.com/r/KjxWWC/1
(\.|^)?
将匹配文本的一个点或开头,对于第一个短语很有用。[^.]*
将匹配任何不是点的东西Bylaw
是你要搜索的东西.*?
会匹配任何东西直到..。(\.|$)
将匹配短语的结束点。注意,如果在文本var matches = regex.Matches("...")
上使用它,结果将是matches[n].Groups[1]
。
https://stackoverflow.com/questions/19034090
复制相似问题