我有一个正则表达式字符串来抓取各种数字,但我注意到它还会抓取紧跟在文本后面的数字。
例如使用如下测试句子: 尼龙-12 的块为 1.23 x 4E-56 x -7.89 我想要提取1.23、4E-56和-7.89。我似乎还从尼龙-12 中抓取了-12 。
我对正则表达式语法还不熟悉,我应该如何开始我的表达式以确保它不会从单词中抓取数字。如果任何文本字符和数字字符之间有空格,那没问题,但是当没有空格(如尼龙 12 中)时,我不想捕获它们。
我用来抓取数字的正则表达式如下所示:
[+\-]?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+\-]?(?:0|[1-9]\d*)(?:\.\d+)?)?
使用regexper 的方式如下:
编辑:
这似乎是与 +/- 运算符搜索有关的问题。我尝试在开头放置\b并查看结果。
如果我将Nylon12,Nylon-13或Nylon+14放入正则表达式,它会返回-13和+14,而不是 12。