首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略从正则表达式中找到的结果的结尾

忽略从正则表达式中找到的结果的结尾
EN

Stack Overflow用户
提问于 2010-02-17 20:36:26
回答 1查看 58关注 0票数 1

我在c#中有一个正则表达式:

代码语言:javascript
复制
Regex oRegex_ = new Regex("<!-- #BeginEditable \"Body\"[^>]*>(.*)<!-- #EndEditable [^>]*>", RegexOptions.Multiline);
MatchCollection matches_ = oRegex_.Matches(contents);

名为'contents‘的变量等于:

代码语言:javascript
复制
<!-- #BeginEditable "Body" -->First String<!-- #EndEditable --><!-- #BeginEditable "Extra" -->Second String<!-- #EndEditable -->

目前它似乎没有抓住我需要的东西,那就是

代码语言:javascript
复制
'First String'

相反,它抓住了

代码语言:javascript
复制
'First String<!-- #EndEditable --><!-- #BeginEditable "Extra" -->Second String<!-- #EndEditable -->'

有人能帮我用正则表达式解决这个问题吗?:(

请注意:我将替换'Body‘成为一个变量,然后把它全部放在一个循环中,这样我就可以通过使变量等于'Extra’来提取'Second String‘。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-17 20:40:58

使用*?执行非贪婪捕获

代码语言:javascript
复制
<!-- #BeginEditable \"Body\"[^>]*>(.*?)<!-- #EndEditable [^>]*>

另一种选择是捕获正确的字符(不是<,但如果您允许<s在您的身体中,这就不那么准确了):

代码语言:javascript
复制
<!-- #BeginEditable \"Body\"[^>]*>([^<]*)<!-- #EndEditable [^>]*>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2280583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档