📌  相关文章
📜  检查字符串包含大写,小写,特殊字符和数字值

📅  最后修改于: 2021-05-04 14:31:18             🧑  作者: Mango

给定长度为N的字符串str ,任务是检查给定的字符串是否包含大写字母,小写字母,特殊字符和数字值。如果字符串包含所有字符串,则打印“是” 。否则,打印“否”

例子:

天真的方法:最简单的方法是遍历字符串,并检查给定的字符串包含大写,小写,数字和特殊字符。步骤如下:

  1. 通过字符遍历字符串的字符从开始到结束。
  2. 检查每个字符的ASCII值是否满足以下条件:
    • 如果ASCII值在[65,90]的范围内,则它是一个大写字母。
    • 如果ASCII值在[97,122]的范围内,则它是小写字母。
    • 如果ASCII值在[48,57]范围内,则它是一个数字。
    • 如果ASCII值在[32,47][58,64][91,96][123,126]范围内,则它是一个特殊字符
  3. 如果字符串包含以上所有内容,则打印。否则,打印No。

时间复杂度: O(N)
辅助空间: O(1)

正则表达式方法:这个想法是针对正则表达式的概念来解决这个问题的。步骤如下:

  • 创建一个正则表达式来检查给定的字符串包含大写,小写,特殊字符和数字值,如下所述:
  • 使用Pattern.matcher()将给定的字符串与正则表达式匹配。
  • 如果字符串以给定的正则表达式匹配打印。否则,打印No。

下面是上述方法的实现:

C++
// C++ program to check if the string
// contains uppercase, lowercase
// special character & numeric value
#include 
#include 
using namespace std;
void isAllPresent(string str)
{
   
  // Regex to check if a string
  // contains uppercase, lowercase
  // special character & numeric value
  const regex pattern("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[-+_!@#$%^&*.,?]).+$");
 
  // If the string is empty
  // then print No
  if (str.empty())
  {
    cout<<"No"<


Java
// Java program for the above approach
 
import java.util.regex.*;
 
class GFG {
 
    // Function that checks if a string
    // contains uppercase, lowercase
    // special character & numeric value
    public static void
    isAllPresent(String str)
    {
        // ReGex to check if a string
        // contains uppercase, lowercase
        // special character & numeric value
        String regex = "^(?=.*[a-z])(?=."
                       + "*[A-Z])(?=.*\\d)"
                       + "(?=.*[-+_!@#$%^&*., ?]).+$";
 
        // Compile the ReGex
        Pattern p = Pattern.compile(regex);
 
        // If the string is empty
        // then print No
        if (str == null) {
            System.out.println("No");
            return;
        }
 
        // Find match between given string
        // & regular expression
        Matcher m = p.matcher(str);
 
        // Print Yes if string
        // matches ReGex
        if (m.matches())
            System.out.println("Yes");
        else
            System.out.println("No");
    }
 
    // Driver Code
    public static void main(String args[])
    {
        // Given string
        String str = "#GeeksForGeeks123@";
 
        // Function Call
        isAllPresent(str);
    }
}


Python3
# Python3 program for the
# above approach
import re
 
# Function that checks if a string
# contains uppercase, lowercase
# special character & numeric value
def isAllPresent(str):
 
    # ReGex to check if a string
    # contains uppercase, lowercase
    # special character & numeric value
    regex = ("^(?=.*[a-z])(?=." +
             "*[A-Z])(?=.*\\d)" +
             "(?=.*[-+_!@#$%^&*., ?]).+$")
     
    # Compile the ReGex
    p = re.compile(regex)
 
    # If the string is empty
    # return false
    if (str == None):
        print("No")
        return
 
    # Print Yes if string
    # matches ReGex
    if(re.search(p, str)):
        print("Yes")
    else:
        print("No")
 
# Driver code
 
# Given string
str = "#GeeksForGeeks123@"
 
#Function Call
isAllPresent(str)
 
# This code is contributed by avanitrachhadiya2155


输出:
Yes

时间复杂度: O(N)
辅助空间: O(1)