2024-03-29 11:10:01 发布
网友
我想使用re查找单词中任意位置有两个以上数字的单词,因此我想返回:
aaabbbccc123
但不是:
aaabbbccc12
唯一的诀窍是数字应该可以出现在任何地方:
aaa1bbb2ccc3 aaa12bbbccc3等
aaa1bbb2ccc3 aaa12bbbccc3
import re arr = ["aaabbbccc123","aaabbbccc12","aaa1bbb2ccc3 aaa12bbbccc3"] for x in arr: m = re.match(r"(.*\d.*\d.*\d.*)",x) if(m) : print(m.group(1))
结果
aaabbbccc123 aaa1bbb2ccc3 aaa12bbbccc3
您可以使用函数re.findall查找模式为\d的字符串中的所有数字re.findall将返回一个已建立数字的数组。然后,使用函数len获取数组的长度
re.findall
\d
len
我还在Python上测试了结果
import re string = "aaabbbccc123" resultStringOne = re.findall(r"\d", string) if len(resultStringOne) > 2: print("resultStringOne") print(resultStringOne) string = "aaabbbccc12" resultStringTwo = re.findall(r"\d", string) if len(resultStringTwo) > 2: print("resultStringTwo") print(resultStringTwo) string = "aaa1bbb2ccc3 aaa12bbbccc3" resultStringThree = re.findall(r"\d", string) if len(resultStringThree) > 2: print("resultStringThree") print(resultStringThree)
resultStringOne ['1', '2', '3'] resultStringThree ['1', '2', '3', '1', '2', '3']
您不需要re来完成以下操作:
re
import string len([x for x in "aaabbbccc123" if x in string.digits]) > 2 # True len([x for x in "aaabb1bccc2" if x in string.digits]) > 2 # False len([x for x in "aa1abb2bccc3" if x in string.digits]) > 2 # False
结果
您可以使用函数
re.findall
查找模式为\d
的字符串中的所有数字re.findall
将返回一个已建立数字的数组。然后,使用函数len
获取数组的长度我还在Python上测试了结果
结果
您不需要
re
来完成以下操作:相关问题 更多 >
编程相关推荐