c# - 在 C# 中使用什么正则表达式从单词 BEHIND 开始匹配(向后匹配......)直到匹配?
问题描述
假设 HTML 中的代码:
<a href="http://google.com">this is a search engine</a>"
如何寻找“引擎”并匹配任何东西,直到达到“这个”?
我知道我可以做到:this.*?engine
- 但这是从左到右匹配,即“提前”匹配,如果可能的话,我想在这里向后阅读?
解决方案
您可以反转所有字符串并执行正常搜索:
string text = @"<a href=""http://google.com""> this is a search engine </a>";
string engine = "engine";
string strThis = "this";
new string(
Regex.Match(
new string(text.Reverse().ToArray()),
new string(engine.Reverse().ToArray()) + ".+" + new string(strThis.Reverse().ToArray()))
.Value
.Reverse()
.ToArray())
此外,为了使代码更清晰,您可以在 a 上定义扩展方法string
,它反转字符串并返回string
而不是IEnumerable<char>
. 请参阅此内容以供参考。
推荐阅读
- php - php shuffle 关联数组的一部分
- javascript - 使用 HighCharts 动态更新同一图表上的两个系列
- javascript - 使用 BehaviorSubject 重新加载刷新期间的角度视图组件数据丢失
- r - 使用 usmap 功能去除县界
- html - 中心牌但有左对齐?
- jqgrid - jqGrid,为动态下拉内联编辑设置初始值
- c# - 无法加载类型“IdentityModel.Client.DiscoveryClient”
- javascript - ReactJS 组件不显示
- android - 如何更改和保存切换首选项摘要
- java - 如何将 Spring Cloud Stream 功能 Bean 连接到 Kafka Binder?