匹配以下模式的正则表达式
1. mrrtjjsf8907m5q29ui
2. 0?userid=y1arx6uxb1nidmz3tguv
3. bryj9itvwjmbyv3wg8ef
我正在尝试将这些值传递给另一个变量col=?([a-zA-Z0-9]{1,20})|([a-zA-Z0-9]{1,20})
它取第一个正确的值,第二个正确取值0
取而代之的是y1arx6uxb1nidmz3tguv
答案 0 :(得分:0)
我认为你需要使用这个正则表达式:
[a-zA-Z](?=[A-Za-z]*\d)[a-zA-Z0-9]{1,19}
这将确保您要匹配的一堆字符仅由字母和数字构成,因此0
或userid
不被视为匹配!
<强>替代:强>
但上述情况可能并未考虑有效序列可能以数字而非字母开头的情况。在这种情况下,您可以使用以下正则表达式来考虑这两种情况:
(?:[a-zA-Z](?=[A-Za-z]*\d)|\d(?=\d*[A-Za-z]))[a-zA-Z0-9]{1,19}
答案 1 :(得分:0)