如何查找字符串是否包含大写字母和数字

时间:2018-11-17 15:17:58

标签: python regex

我想知道字符串是否符合特定条件。对于这种情况,我需要两个条件:

  • 它至少包含2个大写英文字母字符。
  • 它至少包含3位数字。

2 个答案:

答案 0 :(得分:0)

创建两个计数器变量,一个用于大写字母,另一个用于数字。

检查字符串中的每个字符。 for循环在这里可能效果很好。

如果字符是大写字母,则增加大写的后一个计数器。否则,如果字母是数字,则增加数字计数器。

循环结束后,如果大写字母计数器至少为2且数字计数器至少为3,则字符串确实符合所述条件,否则不满足。

答案 1 :(得分:0)

应该可以帮助您

import re
# Check if the string has 3 digits or more
def haveDigits(text):
  if len(filter(str.isdigit, text))>=3:
    return True
  else:
    return False

# Check if the string has 2 uppercase letters or more
def haveUppercase(text):
  if len([char for char in text if char.isupper()])>=2:
    return True
  else:
    return False

# First condition
print(haveDigits("hola123")) # True
print(haveDigits("hola12")) # False

# Second condition
print(haveUppercase("hHola")) # False
print(haveUppercase("HHHola")) # True

# Both conditions at the same time
def bothConditions(text):
  if (haveUppercase(text) & haveDigits(text)):
    return True
  else:
    return False

print(bothConditions("HHHola123")) # True
print(bothConditions("hola1")) # False