我需要一个正则表达式(在notepad ++中可用),该正则表达式可捕获用引号引起来的分号,并且引号和分号之间至少应包含一个字符。
"asdf;a3"
";"
直到现在我有以下正则表达式:\"(.*?)\"
但是,这匹配引号之间的所有内容。我只需要用分号作为匹配项。
感谢您的帮助。
答案 0 :(得分:1)
您可以使用捕获组,并且negated character class与列出的任何字符都不匹配:
public class Model {
public IEnumerable<Int32> values { get; set; }
}
或者利用Type propertyType = context.getPropertyType["values"];
忘记被剥皮的东西和积极的前瞻性:
"[^";]+(;)[^;"]+"
要在双引号之间匹配乘法分号,可以使用\K
说明
"[^;"]+\K;(?=[^;"]+")
\G
非捕获组
(?:"|\G(?!^))[^";]+\K;(?=[^"]+")
匹配(?:
"
或"
在上一场比赛的末尾而不是在开始时断言|
关闭非捕获组\G(?!^)
匹配1次以上,而不是)
或[^";]+
"
忘记匹配的内容并匹配'
\K;
正向前进,断言右边的数字是{+1倍而不是;
,然后匹配(?=[^"]+")
注意:如果不想匹配换行符,可以将其添加到字符类"
答案 1 :(得分:0)