Regex 正则表达式以匹配字符串的部分或全部
我根据变量的结果动态创建正则表达式。我已经成功地测试了大部分表达式,但我正在努力处理长度可能不同的部分 如何修改正则表达式Regex 正则表达式以匹配字符串的部分或全部,regex,Regex,我根据变量的结果动态创建正则表达式。我已经成功地测试了大部分表达式,但我正在努力处理长度可能不同的部分 如何修改正则表达式(a_)?c(davison)\.nsf?,以便将以下任何字符串归类为匹配字符串 a_cdavis.nsf cdavison.nsf cdaviso.nsf cdavis.nsf 本质上,要将字符串视为匹配,字符串必须满足以下条件- “(a_)?”-可以以“a_”开头,但不必以“a”开头 “c”-必须包含小写字母“c” “(davison)”-我不能做的位-必须包含“da
(a_)?c(davison)\.nsf?
,以便将以下任何字符串归类为匹配字符串
- a_cdavis.nsf
- cdavison.nsf
- cdaviso.nsf
- cdavis.nsf
任何提示和提示都将不胜感激。若要使
davison的每个部分成为可选的,请使用嵌套的可选组((?:…)?
),若要设置长度限制,您可以在找到13个字符时,使用锚定在开始处的负前瞻以使匹配失败(因此,(?!{13})
将允许大小为12个或更少字符的字符串):
请参见这是否也与cson.nsf
匹配?引用:“(所以“dav”是可以接受的,但“son”不是)”我想你需要(d(a(v(…)?)?)?
这不是预期的吗?如果不是,字母应该始终紧跟在一起,^(?。{13})(a_551;)c(d(?:a(?:v(?:i(?:s(?:on?)?)\)。nsf$
会有所帮助。这取决于语言是什么。在JS中,会的。语言(不是通过选择)是VBA,我现在正在生成正则表达式…我现在要吃午饭了,如果你在VBA代码方面有问题,请告诉我。
^(?!.{13})(a_)?c(d(?:a(?:v(?:i(?:s(?:on?)?)?)?)?)?)\.nsf$