我有一个语法高亮显示器,它接受一个简单的正则表达式来应用一个样式。现在我需要提供仅匹配浮点数的正则表达式。
文字示例:
test1 -1 0 test2-1.1 0.123 -0.23 255 10.1 1-1-100.11-2
应该匹配什么: [-1],[0],[0.123],[ - 0.23] [255],[10.1]
正如您所看到的 - Stack Overflow的荧光笔错了:)最后一个表达式是一个标识符(甚至可能是文件名)。绝对不是一个数字。
非常重要的是,输入文本中的其他字符不应匹配。
我无法替换文字。使用空格或分号将数字与文本的其余部分分开。但这些角色无法匹配。
明显的尝试:
\b[-+]?[0-9]*\\.?[0-9]+\b
但这不起作用。问题与"字边界"。 " - "字符被视为非单词字符,所以首先" \ b"不匹配任何负数。最后一个" \ b"将在每个" - "之前匹配在文本中,所以在" 1-test" " 1"将被匹配为数字,这是错误的。
是否有一个更智能的锚作为" \ b"但治疗" - "作为可能的一部分?
我担心没有解决方法 - 至少使用一个正则表达式。 或者我错了,可以完成吗?
答案 0 :(得分:1)
答案 1 :(得分:1)