我正在尝试检测字符串是否包含9个或更多数字。解决此问题的最佳方法是什么?
我希望能够在这样的字符串中检测到电话号码:
templateTimeSpanID: <ThingID>
不管这些数字在字符串中的位置如何,提取这些数字的最佳方法是什么?
答案 0 :(得分:3)
由于听起来您只想检查字符串中是否有9位或更多位数字,因此可以使用模式
^(\D*\d){9}
它从字符串的开头开始,并重复由零个或多个非数字字符组成的组,后跟一个数字字符。重复该组9次,您知道该字符串中至少包含9位数字。
pattern = re.compile(r'^(?:\D*\d){9}')
print(pattern.match('Call me @ (123)123-1234'))
print(pattern.match('Call me @ (123)123-12'))
答案 1 :(得分:0)
#Import the regular expressions library
import re
#set our string variable equal to yours above
string = 'Call me @ (123)123-1234'
#create a list using regular expressions, of all digits in the string
a = re.findall("[0-9]",string)
#examine the list to see if its length is 9 digits or more, and print if so
if len(a) >= 9:
print(a)
答案 2 :(得分:0)
或不使用正则表达式(大字符串的速度较慢):
print(sum(letter.isdigit() for letter in my_string)>=9)
或正则表达式的一部分:
print(len(re.findall("[0-9]",my_string))>=9)
只需使用python检查九(9)个或更多数字。