我需要一个正则表达式的答案分隔#
。不幸的是,我找不到一个适当的方法来做到这一点。答案应该在范围1至5。
以下是我的要求:
- 输入可以为空
- 输入可以包括1到5的单个数字,之后在每个新数字之前它应该被
#
分隔。 - 输入长度最大为9。
- 输入不能以#符号结束。
一些有效示例:
1
3#4
1#5#4
1#2#3#4
1#2#3#4#5
一些无效示例:
3# // can not end with #
1#2#3#4#5#1 // length more than 9
6 // only numbers 1 to 5
我会很感激任何帮助,因为我是新来的。
我在上面写了一些例子,我现在不明白如何构建正则表达式。
2条答案
按热度按时间bis0qfac1#
您可以尝试以下表达式:
1.线
^
的起点1.可选(
?
),非匹配组(?:
)1.必须以
[1-5]
开头1.然后是
0 to 4
次#
和[1-5]
1.行结束
$
x一个一个一个一个x一个一个二个x
amrnrhlw2#
给你:https://regexr.com/79au1
正则表达式:
[1-5](#[1-5]){0,4}
[1-5]
匹配1到5之间的任意数字#
(...){n,m}
匹配一组字符至少n
次,最多m
次注意:这个正则表达式将匹配输入字符串中的任何内容。请小心,因为您可能希望严格验证匹配部分之前没有任何内容。请参见answer of Mr. Polywhirl
奖金(另一个答案未提及):仅匹配此输入,但允许标题和尾随空格
^\s*[1-5](#[1-5]){0,4}\s*$