开发者_运维百科For example, if I have the string:
0123456789
I would write expresion like this:
0.*9 WHERE PATTERN MAX SIZE is 3. in this case, pattern should fail.The specific solution to your example is:
/^0.?9$/
The general solution to your abstract question is:
/^(?=.{0,3}$)0.*9$/
In the above (?=.{0,3}$) is a lookahead that the rest of the string has length between 0 and 3.
x{min,max} will match x between min and max times
x{min,} will match x at least min times
x{,max} will match x at most max times
x{n} will match x exactly n times
All ranges are inclusive.
Shortcuts: {0,1} => ?, {0,} => *, {1,} => +.
I'm not sure if this is exactly what you need, but it should help you build your regex.
Example: ^0\d{,3}9$ will match strings with at most 5 digits starting with 0 and ending with 9. Matches: 0339, 06319, 09. Does not match: 033429, 1449.
It sounds like you want to programmatically alter the regex.
Please specify the language you are using (JS, Python, PHP, etc.).
Here's how you could do it using JavaScript:
sYourPattern = '0.*9';
iPatternMaxSize = 3;
zRegex = new RegExp ('^(?=.{0,' + iPatternMaxSize + '}$)' + sYourPattern + '$');
alert (zRegex.test ('09') );
This gives:
'9' --> No match
'09' --> Match
'009' --> Match
'0009' --> No match
'19' --> No match
加载中,请稍侯......
精彩评论