Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在字符串中可选地匹配数字_Regex - Fatal编程技术网

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+)?“([^”]*)”$/
修复了它(即,第一个空格是可选的)。

您的正则表达式仍然需要在可选数字周围使用两个空格。谢谢!我错过了额外的分组。您是对的,为了公平起见,我也会接受它。这就是为什么在第一个答案中,我们需要在冒号
(?:(