我正在尝试制作一个正则表达式,但我是新手。似乎我在这方面一次又一次地失败..
如果有人可以帮助我
基本上我想要一个测试以下内容的表达式,
1- 以 abc 或 def 开头的东西,后跟 0 到 900 之间的数字,然后可以有任何东西,直到最近的 !!
任何帮助都将被视为
此致
如果你想要这个abcXXX(0<xxx<900)
或defXXX (0<xxx<900)
试试这个:
\b(abc)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b|\b(def)([0-9]|[1-9][0-9]|[1-8][0-9[0-9]|900)\b]
说明:正则表达式[0-9]
匹配 0 到 9 的一位数。[1-9][0-9]
匹配 10 到 99 的两位数。这很容易。所以0-900
是0-899
,900
所以 REGEX 是[0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900
。添加\b( )\b
是边界匹配器。类似于def
:def
以 3 位开头。
\b(def)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b
最后使用|
的是or
.
也许我没有尝试一些奇怪的输入,但这是你自己挖掘的基本部分
使用 Alan Moore 更好的建议进行编辑:
\b(abc|def)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b
以下正则表达式将与您的表达式的第一部分匹配。很难理解表达式的第二部分。
以 abc 或 def 开头的东西,后跟 0 到 900 之间的数字
^(abc|def)([0-9]{1,2}|[1-8][0-9]{2}|900)
我解释了下面的表达式。
^(abc|def) //Starts with abc or def
(
[0-9]{1,2}|[1-8][0-9]{2}|900 // matches number between 0-900
)