|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import re
def isNum(s):
p = re.compile(r"-?\d+")
q = re.compile(r"-?\d+\.\d+")
w = re.compile(r"-?\d+(\+|\-)\d+j")#复数形式为a+bj或a-bj
result_1 = p.search(s)
result_2 = q.search(s)
result_3 = w.search(s)
if result_1 != None and result_1.group() == s:
return True
elif result_2 != None and result_2.group() == s:
return True
elif result_3 != None and result_3.group() == s:
return True
else:
False
while True:
a = input("输入:")
if a == 'xx':
break
print(isNum(a))
我想把p,q,w变成一个,然而不管我r"-?\d+|-?\d+\.\d+|-?\d+(\+|\-)\d+j"还是r"(-?\d+)|(-?\d+\.\d+)|(-?\d+(\+|\-)\d+j)"都不行。。。。
有大佬知道该怎么把它们放在一起吗?
本帖最后由 柿子饼同学 于 2021-3-28 19:13 编辑
这个方便你理解
- num = re.compile(r'''
- [+-]?\d+ (?#正负整数)
- (\.\d+ (?#正负整数+小数部分)
- |[+-]\d+j (?#正负整数+复数部分)
- |[eE][+-]?\d+) (?#正负整数+e记法部分)
- ? (?#注意到了吗,小数到e记法都是一个子组,这时匹配0次就相当于匹配整数)
- ''', re.VERBOSE)
复制代码
|
|