Regex 正则表达式。仅查找整数
只查找数学方程中的整数 5+5.5+6/2.0 我想找到5和6,而不是5.5或2.0 要查找小数,我使用\d+(.\d{1,})Regex 正则表达式。仅查找整数,regex,nsregularexpression,Regex,Nsregularexpression,只查找数学方程中的整数 5+5.5+6/2.0 我想找到5和6,而不是5.5或2.0 要查找小数,我使用\d+(.\d{1,}) 我已经尝试过\b\d+\b,但是找到了所有的数字如果正则表达式引擎支持,可以使用负的lookback和lookahead。正则表达式将是: (?<!\.)\d+(?!\.) (? lookback确保数字串不以开头,因此类似.5的内容不会被匹配。lookahead确保数字串不以结尾,因此5.不会被匹配。您可以使用负数lookahead,如果您的正则表达式引擎。
我已经尝试过\b\d+\b,但是找到了所有的数字如果正则表达式引擎支持,可以使用负的lookback和lookahead。正则表达式将是:
(?<!\.)\d+(?!\.)
(?
lookback确保数字串不以
开头,因此类似.5
的内容不会被匹配。lookahead确保数字串不以
结尾,因此5.
不会被匹配。您可以使用负数lookahead,如果您的正则表达式引擎。正则表达式将是:
(?<!\.)\d+(?!\.)
(?
向后查找确保数字串不以
开头,因此类似.5
的内容不会匹配。向前查找确保数字串不以
结尾,因此5.
不会匹配。您可以尝试查找所有没有“.”的数字前面有空格,后面有空格,如下所示:
[^\.]([0-9]+)\s
您可以尝试查找前面没有“.”且后面有空格的所有数字,如下所示:
[^\.]([0-9]+)\s
你可以试试这个:
/(?:^|[^\.])(\d+)(?:\s+|$)/
确保数字不是以点开头,或是字符串的开头,并确保数字后面有空格或字符串的结尾
下面是一个正在运行的PHP示例:
preg_match_all('/(?:^|[^\.])(\d+)(?:\s+|$)/', '5 + 5.5 + 6 / 2.0 + 33 * 16', $matches);
var_dump($matches);
/* Var Dump:
array (size=2)
0 =>
array (size=4)
0 => string '5 ' (length=2)
1 => string ' 6 ' (length=3)
2 => string ' 33 ' (length=4)
3 => string ' 16' (length=3)
1 =>
array (size=4)
0 => string '5' (length=1)
1 => string '6' (length=1)
2 => string '33' (length=2)
3 => string '16' (length=2)
*/
因此,捕获的是5、6、33和16(我添加了一些更长的数字以确保其工作)可以尝试以下方法:
/(?:^|[^\.])(\d+)(?:\s+|$)/
确保数字不是以点开头,或是字符串的开头,并确保数字后面有空格或字符串的结尾
下面是一个正在运行的PHP示例:
preg_match_all('/(?:^|[^\.])(\d+)(?:\s+|$)/', '5 + 5.5 + 6 / 2.0 + 33 * 16', $matches);
var_dump($matches);
/* Var Dump:
array (size=2)
0 =>
array (size=4)
0 => string '5 ' (length=2)
1 => string ' 6 ' (length=3)
2 => string ' 33 ' (length=4)
3 => string ' 16' (length=3)
1 =>
array (size=4)
0 => string '5' (length=1)
1 => string '6' (length=1)
2 => string '33' (length=2)
3 => string '16' (length=2)
*/
因此,捕获的是5、6、33和16(我添加了一些更长的数字以确保其正常工作)这有两个问题:第一个字符类使用数字,而后面没有空格的整数(例如最后一个)将不匹配。这有两个问题:第一个字符类使用数字,后面没有空格的整数(例如最后一个)将不匹配。是,NSRegularExpRSION
s确实支持lookback和lookahead,这将很好地工作。编码为文本字符串的Objective-C代码将如下所示:@“(?Ohhh)标记为“nsregularexpression”。“我在第一次读取时错过了ns部分。是的,NSRegularExpression
s确实支持向后看和向前看,这将很好地工作。将Objective-C代码编码为文字字符串,它将如下所示:@”(?ohh)标记为“NSRegularExpression”。我在第一次读取时错过了ns部分。