📅  最后修改于: 2023-12-03 14:55:54.466000             🧑  作者: Mango
正则表达式(Regular Expression)是一种强大的文本处理工具,常用于字符串匹配、替换、验证等操作。正则表达式也可以用来匹配数字,包括整数、小数和科学计数法等形式。
本文将介绍如何使用正则表达式匹配除 0 以外的正浮点数。
正浮点数指的是大于 0 的小数,例如:0.1、0.23、1.5 等。如果要匹配这些数字,可以使用以下正则表达式:
^[1-9]\d*(\.\d+)?$
该正则表达式的含义是:
^
:匹配字符串的开始位置。[1-9]
:匹配 1 到 9 中的任意一个数字。\d*
:匹配任意个数字(包括0个)。(\.\d+)?
:匹配小数部分。\.
表示匹配小数点,\d+
表示匹配任意个数字(至少1个)。?
表示匹配 0 或 1 个括号内的表达式。$
:匹配字符串的结束位置。利用这个正则表达式,可以匹配所有除 0 以外的正浮点数。
例如,使用 JavaScript 代码实现:
const regExp = /^[1-9]\d*(\.\d+)?$/;
console.log(regExp.test('0.1')); // true
console.log(regExp.test('0.23')); // true
console.log(regExp.test('1.5')); // true
console.log(regExp.test('0')); // false
console.log(regExp.test('-0.1')); // false
console.log(regExp.test('abc')); // false
/^([1-9]\d*|0)(\.\d+)?$/gm
此正则表达式匹配除0以外的任何数字,包括小数、整数和负数。具体来说:
^
匹配字符串开始
()
创建一个匹配组
[1-9]\d*|0
匹配整数部分,可以是数值1到9的任意数位即0到99,或是0
(\.\d+)?
匹配小数部分,实现其可选,括号和问号用于分组
$
匹配字符串结束
/gm
修饰符:
g
全局匹配:查找所有匹配而非在找到第一个匹配后停止m
多行匹配: 能够匹配到换行符匹配的结果是一个数组,匹配内容的格式为字符串,例如,使用 Python 实现的代码如下:
import re
pattern = re.compile(r'^([1-9]\d*|0)(\.\d+)?$') # 编译正则表达式
print(pattern.findall('0.1 abc 1.5 0 -0.1')) # 匹配包含多个数字的字符串
输出结果如下:
[('0.1', ''), ('1.5', ''), ('0', ''), ('', '')]
其中,返回的元组中包含整数部分和小数部分,如果没有小数部分,则为空字符串。