📅  最后修改于: 2023-12-03 15:34:30.847000             🧑  作者: Mango
正则表达式是一种用于匹配、查找和处理文本的强大工具。在Python中,我们可以使用re模块来使用正则表达式。
正则表达式可以用来检查文本是否符合特定的模式。在这个例子中,我们将使用正则表达式来检查用户输入是否为浮点数。
首先,我们需要导入Python中的re模块。在代码中,我们可以这样写:
import re
接下来,我们需要定义一个正则表达式,用于匹配浮点数。在这个例子中,我们将使用以下正则表达式:
'^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$'
这个正则表达式的含义是:
^
匹配字符串的开始位置[-+]?
匹配可选的正负号[0-9]*
匹配0或多个数字\.?
匹配可选的小数点[0-9]+
匹配1或多个数字([eE][-+]?[0-9]+)?
匹配可选的科学计数法表示现在,我们已经定义了浮点数的正则表达式,可以编写一个函数来检查输入是否为浮点数。在代码中,我们可以这样写:
def is_float(input_str):
pattern = re.compile('^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$')
return bool(pattern.match(input_str))
这个函数使用了re模块中的compile()函数来编译正则表达式,然后使用match()函数来匹配输入的字符串。如果字符串匹配正则表达式,函数将返回True,否则返回False。
最后,我们可以编写一些测试用例来测试我们的函数。在代码中,我们可以这样写:
assert is_float('3.14') == True
assert is_float('+3.14') == True
assert is_float('-3.14') == True
assert is_float('3e-2') == True
assert is_float('3E+2') == True
assert is_float('.1') == True
assert is_float('.1e2') == True
assert is_float('abc') == False
assert is_float('1.2.3') == False
这个测试用例包括一些正常和异常的输入。如果我们的函数能够正确地检测出输入是否为浮点数,所有测试用例都应该通过。
在这个例子中,我们学习了如何使用正则表达式来检查输入是否为浮点数。我们首先定义了浮点数的正则表达式,然后编写了一个函数来检查输入是否为浮点数。最后,我们编写了一些测试用例来测试我们的函数。