【发布时间】:2013-07-12 05:17:32
【问题描述】:
输入: 垃圾="stff",start1="allshortsofCharactersExceptDoubleQuotes",start2="*&^%$blahblah"
期望的结果: allshortsofCharactersExceptDoubleQuotes
*&^%$blahblah
使用 c# .NET:
string myRegExString = @"(?<=start[0-9].).*(?="")"
产量: allshortsofCharactersExceptDoubleQuotes",start2="*&^%$blahblah
通过测试,我知道如果我将 .* 替换为包含除双引号之外的所有字符的集合,我会得到所需的结果,但这是很多工作,我会弄错。在 .* 之前使用 (?!"") 或 (?!="") 也不起作用。
那么如何让先行在它找到的第一个双引号处停止?
回复中的正确答案(据我测试):
(?<=start\d+="")[^""]*(?="")
或
(?<=start\d+="")[^""]+(?="")
或者这也有效,但不完全符合要求。
(?<=start\d+="")[^""]*
谢谢。我对这个项目的前瞻方面非常着迷。
【问题讨论】: