输入:garbage="stff",start1="allshortsofCharactersExceptDoubleQuotes",start2="*&^%$blahblah"
期望的结果:除双引号外的所有字符的缩写
*&^%$blahblah
使用 c# .NET:
string myRegExString = @"(?<=start[0-9].).*(?="")"
结果:allshortsofCharactersExceptDoubleQuotes",start2="*&^%$blahblah
通过测试,我知道如果我将 .* 替换为包含除双引号之外的所有字符的集合,我会得到想要的结果,但这是很多工作,我会弄错。在 .* 之前使用 (?!"") 或 (?!="") 也不起作用。
那么如何让先行在它找到的第一个双引号上停止呢?
来自响应的正确答案(据我测试):
(?<=start\d+="")[^""]*(?="")
或者
(?<=start\d+="")[^""]+(?="")
或者这也有效,但并不完全符合要求。
(?<=start\d+="")[^""]*
谢谢。我对这个项目的前瞻性方面非常着迷。