Javascript 无法分解这个正则表达式:^[^\d]*?(\d+;)[^\d]*?(\d+;)?[^\d]*?$到底在做什么
regexp是Javascript 无法分解这个正则表达式:^[^\d]*?(\d+;)[^\d]*?(\d+;)?[^\d]*?$到底在做什么,javascript,regex,Javascript,Regex,regexp是 ^[^\d]*?(\d+)[^\d]*?(\d+)?[^\d]*?$ 我理解得对吗?此表达式开头和结尾处的^和$设置表达式的起点和终点(这意味着它应该是完全匹配的?)。然后在里面,它需要2个非数字序列,后面跟任意数量的数字,然后以任意非数字字符结尾 例如:“我妈妈有6只猫和1只狗。” 另外,有人能解释一下在这个表达式中使用捕获组()与列表[]的目的吗 如果我回答自己的问题,我很抱歉,我只是想确保我理解这一点 这个正则表达式唯一关心的是字符串的开头和/或结尾有一组数字 ^[^\d
^[^\d]*?(\d+)[^\d]*?(\d+)?[^\d]*?$
我理解得对吗?此表达式开头和结尾处的^
和$
设置表达式的起点和终点(这意味着它应该是完全匹配的?)。然后在里面,它需要2个非数字序列,后面跟任意数量的数字,然后以任意非数字字符结尾
例如:“我妈妈有6只猫和1只狗。”
另外,有人能解释一下在这个表达式中使用捕获组()
与列表[]
的目的吗
如果我回答自己的问题,我很抱歉,我只是想确保我理解这一点 这个正则表达式唯一关心的是字符串的开头和/或结尾有一组数字 ^[^\d]*?(\d+)[^\d]*?(\d+)?[^\d]*?$ 在这组数字之前,可能有一系列非数字 ^[^\d]*?(\d+)[^\d]*?(\d+)[^\d]*$ 在最初的一组数字之后,还可能有一系列非数字 ^[^\d]*?(\d+[^\d]*?(\d+)[^\d]*?$ 和/或一组数字 ^[^\d]*?(\d+)[^\d]*?(\d+)[^\d]*?$ 和/或一组非数字 ^[^\d]*?(\d+)[^\d]*?(\d+)[^\d]*?$
如果非数字字符组在前面,则包括在内。如果不是,则仅为初始数字组。如果有以下可选部件,则包括它们。如果没有,则以初始数字组为结尾。您的正则表达式和示例数据-此处提供了正则表达式的完整解释。首先,将
[^\d]
简化为\d
,只是为了更容易读取,正则表达式本身的功能不需要捕获组,但也许它们被用于评估比赛结果。取决于使用此正则表达式的代码。您的正则表达式将在第一个和第二个捕获组中提取6
和1
。您对正则表达式的理解是正确的。感谢您给出明确的答案。这正是我要找的@万能的当然会!