Regex 在字符串中可选地匹配数字
我想匹配以下内容(两者):Regex 在字符串中可选地匹配数字,regex,Regex,我想匹配以下内容(两者): 我有“任意字符串” 我有50个“任意字符串” 我想到:/^I有(\d+)?“([^”]*)”$/匹配第二个,但与第一个不匹配 如何使数字可选?我需要数字的数据 谢谢。将空格+数字放在非捕获组中,并将其作为可选项。如果要捕获数字,请将捕获组ie,()放在\d+ ^I have(?: (\d+))? "([^"]*)"$ 您的正则表达式与第一个示例字符串不匹配,因为它在have和之间总共需要两个空格字符 将表达式更改为/^I have?(\d+)?“([^”]*)”
我有“任意字符串”
我有50个“任意字符串”
/^I有(\d+)?“([^”]*)”$/
匹配第二个,但与第一个不匹配
如何使数字可选?我需要数字的数据
谢谢。将
空格
+数字放在非捕获组中,并将其作为可选项。如果要捕获数字,请将捕获组ie,()
放在\d+
^I have(?: (\d+))? "([^"]*)"$
您的正则表达式与第一个示例字符串不匹配,因为它在
have
和之间总共需要两个空格字符
将表达式更改为/^I have?(\d+)?“([^”]*)”$/
修复了它(即,第一个空格是可选的)。您的正则表达式仍然需要在可选数字周围使用两个空格。谢谢!我错过了额外的分组。您是对的,为了公平起见,我也会接受它。这就是为什么在第一个答案中,我们需要在冒号(?:(