如何检查字符串是否包含9个或更多数字?

时间:2018-10-23 00:03:11

标签: python regex

我正在尝试检测字符串是否包含9个或更多数字。解决此问题的最佳方法是什么?

我希望能够在这样的字符串中检测到电话号码:

templateTimeSpanID: <ThingID>

不管这些数字在字符串中的位置如何,提取这些数字的最佳方法是什么?

3 个答案:

答案 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)个或更多数字。