📜  如何在Java使用正则表达式验证标识符

📅  最后修改于: 2021-09-06 06:21:05             🧑  作者: Mango

给定一个字符串str ,任务是使用正则表达式检查字符串是否是有效标识符。

定义Java标识符的有效规则是:

  • 它必须以小写字母[az ] 或大写字母[AZ]或下划线(_)或美元符号($)开头。
  • 它应该是一个单词,不允许有空格。
  • 它不应该以数字开头。

例子:

方法:这个问题可以通过使用正则表达式来解决。

  1. 获取字符串。
  2. 创建一个正则表达式来检查有效的标识符。
    regex = "^([a-zA-Z_$][a-zA-Z\\d_$]*)$";
    

    在哪里:

    • ^表示字符串的起始字符。
    • [a-zA-Z_$]表示,字符串只以小写字母或大写字母或下划线(_)或美元符号($)开头。>/li>
    • [A-ZA-Z \\ d _ $] *表示,该字符串可以是字母数字或uderscore(_)或字符串的第一个字符之后美元符号($)。它包含一个或多个时间。
    • $表示字符串的结尾。
  3. 将给定的字符串与正则表达式匹配。在Java,这可以使用 Pattern.matcher() 来完成。
  4. 如果字符串与给定的正则表达式匹配,则返回 true,否则返回 false。

下面是上述方法的实现:

// Java program to validate the
// identifiers using Regular Expression.
  
import java.util.regex.*;
  
class GFG {
  
    // Function to validate the identifier.
    public static boolean
    isValidIdentifier(String identifier)
    {
  
        // Regex to check valid identifier.
        String regex = "^([a-zA-Z_$][a-zA-Z\\d_$]*)$";
  
        // Compile the ReGex
        Pattern p = Pattern.compile(regex);
  
        // If the identifier is empty
        // return false
        if (identifier == null) {
            return false;
        }
  
        // Pattern class contains matcher() method
        // to find matching between given identifier
        // and regular expression.
        Matcher m = p.matcher(identifier);
  
        // Return if the identifier
        // matched the ReGex
        return m.matches();
    }
  
    // Driver Code.
    public static void main(String args[])
    {
  
        // Test Case 1:
        String str1 = "$geeks123";
        System.out.println(isValidIdentifier(str1));
  
        // Test Case 2:
        String str2 = "$gee ks123";
        System.out.println(isValidIdentifier(str2));
  
        // Test Case 3:
        String str3 = "1geeks$";
        System.out.println(isValidIdentifier(str3));
    }
}
输出:
true
false
false

如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live