【发布时间】:2020-08-25 11:09:22
【问题描述】:
我有以下一段文字:
"M -0.6,-0.5 V 256e-17 512.5 h 44.107422 c 20.577609,0 l-3,-4 2,2 -1.9e-12 , 0"
我想让正则表达式检测所有实数除了以逗号开头的数字。我做不到,谁能帮帮我?
我为相反的情况写了正则表达式:
, *[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?
它检测每个以逗号开头的实数。
我正在使用这个表达式进行实数检测:
[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?
我尝试用lookbehind做一些事情,比如:
(?<!, *)[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?
但是“后视组没有明显的最大长度”或向我提供了另一个错误。
我正在考虑两种不同的方式:
- 从所有实数中排除以逗号开头的数字,但不知道如何,
- 查找前面没有逗号的数字,也知道如何。
我正在使用 java.util.regex
谢谢你的问候, 女士们。
【问题讨论】:
-
欢迎来到stackoverflow。请不要包含诸如“谢谢你和问候,MSZ”之类的语句。 .请参阅此处了解更多信息:meta.stackexchange.com/questions/2950/…
-
您可能应该为此使用捕获组。然后你可以做类似 [^\,](real_number) 的事情,并获取捕获组的内容