regex 在Google文档中从字符串中提取浮点数

mklgxw1f  于 2023-10-22  发布在  Go
关注(0)|答案(2)|浏览(83)

在我的Google Sheet中,我试图使用Regex从测试字符串中提取一个特定的浮点数(0.068359375):

PC190B48KNK - 2 items (0.068359375 cu ft @ $0.08, $0.08 min)

Regex函数:

=REGEXEXTRACT(A1,"[+-]?([0-9]*[.])?[0-9]+{6,}")

当我在Rubular中测试时,regex函数可以工作,但在Sheets中我得到错误:
函数REGEXEXEXTRACT参数2值“[+-]?([0-9]*[.])?[0-9]+{6,}”不是有效的正则表达式。
我哪里做错了?

ee7vknir

ee7vknir1#

错误只是因为想得到6个或更多的变量,但设置+太。试试这个:

[+-]?([0-9]*[.])?\d{6,}
vktxenjb

vktxenjb2#

实际上,甚至Rubular也会说“* 哎呀,处理正则表达式时出错了。* ”您的正则表达式无效,因为您使用了[0-9]+{6,},一个+量词,后跟{6,},一个限制量词,这是被禁止的。
如果您想匹配一个可选的零或更多位数字序列后的六位或更多位数字,然后再加上一个.字符,则可以使用

[+-]?(?:[0-9]*\.)?[0-9]{6,}

注意事项:

  • [0-9]*\.部分使用non-capturing group,以避免因此获取组值
  • 使用[0-9]{6,}匹配六个或更多的数字。

相关问题