0

我正在尝试制作一个正则表达式,但我是新手。似乎我在这方面一次又一次地失败..

如果有人可以帮助我

基本上我想要一个测试以下内容的表达式,

1- 以 abc 或 def 开头的东西,后跟 0 到 900 之间的数字,然后可以有任何东西,直到最近的 !!

任何帮助都将被视为

此致

4

2 回答 2

2

如果你想要这个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-9000-899900所以 REGEX 是[0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900。添加\b( )\b边界匹配器。类似于defdef以 3 位开头。

\b(def)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b

最后使用|的是or.

使用Java 的正则表达式测试页进行测试

也许我没有尝试一些奇怪的输入,但这是你自己挖掘的基本部分

使用 Alan Moore 更好的建议进行编辑:

\b(abc|def)([0-9]|[1-9][0-9]|[1-8][0-9][0-9]|900)\b
于 2012-08-12T15:20:08.623 回答
0

以下正则表达式将与您的表达式的第一部分匹配。很难理解表达式的第二部分。

以 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
)
于 2012-08-12T16:26:48.537 回答