RegEx匹配(如果存在)

问题描述 投票:5回答:5

只有存在时,正则表达式中是否存在匹配(有条件)的东西?

EG

字符串可能

question_1

或者只是

question

在前者的情况下,它应该与最后的整数匹配,但是在后者的情况下,它应该保留它。

regex
5个回答
6
投票

?是Regexes中的0-1量词。 \d?表示0或1位数。 *是0无限量词。 \d*表示0位或更多位数。这是你想要的吗? (另外+是1个或多个量词,而不是量词意味着1)

我会说,详细说明你的问题

question(_\d+)?

question后跟一个可选的(_和1位或更多位)

括号仅用于对子表达式进行分组(它们是“数学”括号)


2
投票

不太明白这个问题。你只想提取数字吗?

question_(\d+)

2
投票

如果要提取数字 question(?:_?)(\d)?


1
投票

在perl你可以做类似的事情:

my $string = 'question_1';
my $question_number = $string =~ /question_(\d+)/i;

现在$question_number如果匹配将持有int,如果不匹配则将是undef


0
投票

如果下划线和数字是可选的,请尝试以下方法:

question(?:_\d)?

© www.soinside.com 2019 - 2024. All rights reserved.