有没有正则表达式可以(有条件地)匹配仅存在的内容?
例如:
字符串可能。
例如:
字符串可能。
question_1
或者仅仅是这样。question
如果是前一种情况,它应该与末尾的整数匹配,但对于后一种情况,则应将其保留。
question_1
或者仅仅是这样。question
如果是前一种情况,它应该与末尾的整数匹配,但对于后一种情况,则应将其保留。
?
是正则表达式中的0-1量词。\d?
表示0或1个数字。*
是0或多个量词。 \d*
表示0或多个数字。这符合您的要求吗?
(此外,+
是1或多个量词,而没有量词表示正好1个)question(_\d+)?
问题后面可以跟一个可选项 (_
AND 1 或更多数字)
其中括号只是用来分组子表达式的(它们是“数学”括号)
你不太明白问题。你只想提取数字吗?
question_(\d+)
question(?:_?)(\d)?
在 Perl 中,你可以这样做:
my $string = 'question_1';
my $question_number = $string =~ /question_(\d+)/i;
$question_number
将保存 int 值,否则将为 undef
。如果下划线和数字是可选的,请尝试使用以下代码:
question(?:_\d)?