Regex 正则表达式只匹配字符串中的数字
我只需要拿下面字符串中的数字作为例子Regex 正则表达式只匹配字符串中的数字,regex,Regex,我只需要拿下面字符串中的数字作为例子 lori ipsum 1, 2 e 3 dorm kietjiojwoijdej 162, 131 e 107 m² lori fsdfsd ipsum 2 e 3 dormitórios fsrfsrfrfrfkietjiojwoijdej 162, 131 e 107 m² lori ipsum dfs 3 dorm kidfsrfrfrffretjiojwoijdej 62, 13 e 10 m² lori ipsum 1 dormitórios
lori ipsum 1, 2 e 3 dorm kietjiojwoijdej 162, 131 e 107 m²
lori fsdfsd ipsum 2 e 3 dormitórios fsrfsrfrfrfkietjiojwoijdej 162, 131 e 107 m²
lori ipsum dfs 3 dorm kidfsrfrfrffretjiojwoijdej 62, 13 e 10 m²
lori ipsum 1 dormitórios kietjiojwoijdej 16, 31 e 107 m²
期望输出为:
[0] => 1, [1] => 2, [2] => 3
[0] => 2, [1] => 3
[0] => 3
[0] => 1
我尝试使用以下正则表达式:
(\d(?= dorms))|(\d(?= dormitórios))
我的问题是逗号,空格和“e”字符,我不知道结果是什么
我的测试:对于当前的正则表达式,您只匹配3 in3 dormitórios
和1 in1 dormitórios
,因为在前瞻中,您指定了一个空格,后跟dorms
或dormitórios
您不匹配3宿舍中的3个
,因为您将(?=dorms)
与额外的s
一起使用
相反,您可以使用1个正数而不是2个正数和可选的非捕获组(?:itórios)
来匹配这两个变体,并在要匹配的单词前后添加单词边界\b
详细信息
\d
匹配单个数字
(?=
非捕获组
*?
匹配任何字符零次或多次非贪婪
\b
单词边界
dorm(?:itórios)?
匹配dorm
或dormitórios
\b
单词边界
)
关闭非捕获组
对于当前正则表达式,您只匹配3 in3 dormitórios
和1 in1 dormitórios
,因为在前瞻中,您指定了一个空格,后跟dorms
或
您不匹配3宿舍中的3个
,因为您将(?=dorms)
与额外的s
一起使用
相反,您可以使用1个正数而不是2个正数和可选的非捕获组(?:itórios)
来匹配这两个变体,并在要匹配的单词前后添加单词边界\b
详细信息
匹配单个数字\d
非捕获组(?=
匹配任何字符零次或多次非贪婪*?
单词边界\b
匹配dorm(?:itórios)?
或dorm
dormitórios
单词边界\b
关闭非捕获组)