2024-04-30 04:20:08 发布
网友
我当前使用的正则表达式:
(\d+)
问题是我可以得到两个字符串:
"2112343 and alot of 4.99"
或
"4.99 and alot of 2112343 "
我从这两个方面得到的:
我只需要得到2112343。。。 我怎样才能做到这一点?在
如果我理解正确的话,你也希望把这些数字和里面的一个点匹配起来,但不希望在结果集合中包含这些。在
我将通过两个步骤来实现这一点,首先选择所有的数字,也包括带点的数字:
(\d+(?:\.\d+)*)
然后过滤掉所有非纯数字的内容,并使用第一个正则表达式并将其应用于第一步产生的集合的每个项目:
正如我在评论中所说:
(?:^| )(\d+)(?:$| )
它将匹配所有完全由数字组成的“单词”(单词是由空格字符和/或字符串的开头/结尾包围的非空格字符组成的字符串)
使用lookaround,您可以将捕获限制为仅捕获不被其他数字或小数点包围的数字:
(?<![0-9.])(\d+)(?![0-9.])
或者,如果您只想匹配独立号码(例如,如果您不想匹配abc123def中的123):
abc123def
如果我理解正确的话,你也希望把这些数字和里面的一个点匹配起来,但不希望在结果集合中包含这些。在
我将通过两个步骤来实现这一点,首先选择所有的数字,也包括带点的数字:
然后过滤掉所有非纯数字的内容,并使用第一个正则表达式并将其应用于第一步产生的集合的每个项目:
^{pr2}$正如我在评论中所说:
它将匹配所有完全由数字组成的“单词”(单词是由空格字符和/或字符串的开头/结尾包围的非空格字符组成的字符串)
使用lookaround,您可以将捕获限制为仅捕获不被其他数字或小数点包围的数字:
或者,如果您只想匹配独立号码(例如,如果您不想匹配
^{pr2}$abc123def
中的123):相关问题 更多 >
编程相关推荐