regex查找文本中的所有数字组,这些数字组被分组为多个
我试图找到一篇文章中的所有数字,很多数字都带有点或逗号。然而,我想避免在单词中出现一个数字,例如“hou2se”,但是任何超过一个数字的情况都应该是有效的。现在,我有以下正则表达式:regex查找文本中的所有数字组,这些数字组被分组为多个,regex,regex-negation,regex-group,Regex,Regex Negation,Regex Group,我试图找到一篇文章中的所有数字,很多数字都带有点或逗号。然而,我想避免在单词中出现一个数字,例如“hou2se”,但是任何超过一个数字的情况都应该是有效的。现在,我有以下正则表达式: '(\d+\.?\d*)' 我不知道如何避免那种特定的模式。 我试过这样的方法: '(\d+\.?\d*)(?![A-Za-z]\d[A-Za-z])' 但它不起作用。例如,我如何避免找到“hou2se”? 注意:我想要一个被字母包围的数字 编辑:一些示例: "5.5asd" = match 5.5 "asd1
'(\d+\.?\d*)'
我不知道如何避免那种特定的模式。
我试过这样的方法:
'(\d+\.?\d*)(?![A-Za-z]\d[A-Za-z])'
但它不起作用。例如,我如何避免找到“hou2se”?
注意:我想要一个被字母包围的数字
编辑:一些示例:
"5.5asd" = match 5.5
"asd1.3 " = match 1.3
"5,2" = match 5,2
"asd 5,4 asd 2.2 as5d" = match 5,4 and 2.2
"asd 45. mms555as 4545 sas 5book" = match 45. 555 4545 5
我没有包括逗号,但我知道我需要将[,]而不是“\”放在获取值的可能性上,即匹配您不想要的内容,然后在组中使用 您的值将在捕获组1中 将匹配:
单词边界\b
非捕获组(?:
在一个或多个单词字符之间匹配一个数字[a-zA-Z\]+\d[a-zA-Z\]+
。\d
(不带数字)[a-zA-Z\]+
关闭非捕获组)
单词边界\b
或|
捕获组(
匹配一个或多个数字,后跟一个可选部分,该部分匹配一个点或逗号以及零个或多个数字\d+(?:[,]\d*)?
关闭捕获组)
单词边界\b
非捕获组(?:
在一个或多个单词字符之间匹配一个数字[a-zA-Z\]+\d[a-zA-Z\]+
。\d
(不带数字)[a-zA-Z\]+
关闭非捕获组)
单词边界\b
或|
捕获组(
匹配一个或多个数字,后跟一个可选部分,该部分匹配一个点或逗号以及零个或多个数字\d+(?:[,]\d*)?
关闭捕获组)
\b\d[^A-Za-z]+\d[^A-Za-z]+\b
应该能做到这一点。这将检查是否有一个分词后跟一个数字和一系列非字母,或者一个数字和一系列非字母后跟一个分词。它不会匹配任何两面都有字母的东西。\b\d[^A-Za-z]+\d[^A-Za-z]+\b
应该可以做到这一点。这将检查是否有一个分词后跟一个数字和一系列非字母,或者一个数字和一系列非字母后跟一个分词。它不会匹配任何两面都有字母的内容。请提供更多示例和结果。“5.5asd”、“asd1.3”、“5,2”或“asd 5,4 asd 2.2 as5d”如何?asd2.2xyz如何?请提供更多示例和结果。“asd 5.5asd”、“asd1.3”、“5,2”或“asd 5,4 asd 2.2 as5d”如何?asd2.2xyz如何?好主意!你需要边界这个词吗?(?:\d+)使“45.”有效too@Chriz接得好!我已经将最后一部分更新为\d*
好主意!你需要边界这个词吗?(?:\d+)使“45.”有效too@Chriz接得好!我已将最后一部分更新为\d*