2
我基于变量的结果即时创建正则表达式。我已经成功地测试了大部分表达式,但是我正在努力处理可能长度不同的部分。正则表达式匹配部分或全部字符串
我该如何修改正则表达式(a_)?c(davison)\.nsf?
以便下面的任何字符串都可以归类为匹配项?
- a_cdavis.nsf
- cdavison.nsf
- cdaviso.nsf
- cdavis.nsf
从本质上讲,被认为是一个匹配,字符串必须符合下列条件 -
- “(a_)?” - 可以开始与“A_”,但不必
- “C” - 必须包含小写字母“c”
- “(戴维森)” - 位,我不能做 - 必须包含的部分或全部“戴维森”,从头开始(因此“DAV”是可以接受的,但“儿子”是不是)
- “ NSF” - 必须以“.NSF”说完
- 长度 - 长度不超过12个字符,包括可选的“_a “在字符串的开始和字符串末尾所需的”.nsf“。
任何提示和技巧将不胜感激。
这会不会也匹配'cson.nsf'? Quote:“(所以”dav“是可以接受的,但”儿子“不是)”我认为你需要'(d(a(v(...)?)?)?)?' –
是否预期?如果不是,并且这些字母应该总是跟着另一个,那么'^(?!。{13})(a _)?c(d(?:a(?:v(?:i(?:s(?:on? )?)?)?)?)?)\。nsf $'可以提供帮助。 –
这取决于语言是什么。在JS中,它会[这样的](https://jsfiddle.net/rsLngq2g/)。 –