我通常远离,regular expressions
因为我很少找到他们的好用.但在这种情况下,我认为我没有选择.
我需要一个正则表达式来处理以下情况.我将看三个字符串.如果第一个字符是1-9 or the letters o,n,d (lower or upper)
AND,则第二个字符是1,2 or 3
第三个字符,它将匹配0-9
.
有人可以帮帮我吗?
其他一些答案略有不同.将输入限制为完全匹配的文本.
^[1-9ondOND][123][0-9]$
[1-9ondOND][123][0-9]
我省略了^
和$
(字符串标记的开头和结尾),因为你说你有三个字符的字符串,但是包含它们没有什么害处,它们可能会提高速度,而不是说这对于这么短的事情来说是个大问题输入.
当然,这是假定你的语言和区域,其中的大写形式的工作o
,n
和d
是O
,N
和D
.如果没有,你需要告诉你的正则表达式解释器忽略大小写.该机制因语言/框架而异.
对于python,你会使用类似的东西:
re.match('[1-9ond][123][0-9]', inputstring, re.IGNORECASE)
该re.match
部队比赛在字符串的开头,这样你就不需要^
在任何情况下.