当前位置: 首页 > 知识库问答 >
问题:

使用regex检查字符串是否至少包含一个Unicode字母

缑嘉玉
2023-03-14

我需要这样一种验证,即我的字符串必须至少包含一个Unicode字母。将评估角色的角色。isLetter()为true。

比如说我要

~!@#$%^&*(()_+<>?:"{}|\][;'./-=` : false
~~1_~ : true
~~k_~ : true
~~汉_~ : true

我知道我可以使用角色循环。isLetter(),但我只是不想这么做。

这和这个完全不同,因为它只检查英文字母,但在我的例子中是一个Unicode字母。这根本不一样。

共有1个答案

徐昆
2023-03-14

您可以尝试使用这个regex

要更好地理解正则表达式中的Unicode,请阅读以下内容。

使用代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

    public static void main(String args[]) {
        // String to be scanned to find the pattern.
        String line = "~!@#$%^&*(()_+<>?:\"{}|\\][;'./-=`";
        String pattern = "\\p{L}|[0-9]"; // regex needed

        // Create a Pattern object
        Pattern r = Pattern.compile(pattern);

        // Now create matcher object.
        Matcher m = r.matcher(line);
        System.out.print("String \"" + line + "\" results to ");
        if (m.find()) {
            System.out.println("TRUE -> Found value: " + m.group(0));
        } else {
            System.out.println("FALSE");
        }
        line = "~~1_~";
        m = r.matcher(line);
        System.out.print("String \"" + line + "\" results to ");
        if (m.find()) {
            System.out.println("TRUE -> Found value: " + m.group(0));
        } else {
            System.out.println("FALSE");
        }
        line = "~~k_~";
        m = r.matcher(line);
        System.out.print("String \"" + line + "\" results to ");
        if (m.find()) {
            System.out.println("TRUE -> Found value: " + m.group(0));
        } else {
            System.out.println("FALSE");
        }
        line = "~~汉_~";
        m = r.matcher(line);
        System.out.print("String \"" + line + "\" results to ");
        if (m.find()) {
            System.out.println("TRUE -> Found value: " + m.group(0));
        } else {
            System.out.println("FALSE");
        }
    }

}

结果:

String "~!@#$%^&*(()_+<>?:"{}|\][;'./-=`" results to FALSE
String "~~1_~" results to TRUE  
String "~~k_~" results to TRUE -> Found value: k
String "~~汉_~" results to TRUE -> Found value: 汉
 类似资料:
  • 我有这个正则表达式只允许字母数字字符。 如何检查字符串是否至少包含3个字母字符。 我当前的正则表达式, 我想强制执行字符串以确保至少有3个连续的字母字符;

  • 我的字符串可以包含任何其他字符,但如果它至少包含一个数字,我希望从数组中获取这些字符串的索引。

  • 问题内容: 我想要这样一个验证,即“我的字符串”必须至少包含一个字母。 我正在使用以下内容: 即使在我的字符串中,标志也会给我 问题答案: 您想要的正则表达式是,但是您需要使用方法。 此页面将让您根据输入测试正则表达式。 正则表达式测试页 这里有一个Java正则表达式教程。 Java正则表达式教程

  • 我需要这样的验证,我的字符串必须至少包含一个字母表。 我正在使用以下内容: 即使字符串中有a,flag也会给我提供false

  • 所以我一辈子也想不出来。我正在尝试编写一个程序,提示用户输入电话号码。这将作为字符串输入,并在稍后的程序中转换为整数数组。然而,我现在遇到的情况是验证用户输入的字符串是否仅限于!!!包含2-9之间的数字。我已经尝试了。Contains方法和。Match方法,但是使用这些方法总是提供错误的结果。如果有人能提供一些关于如何解决这个问题,我将非常感谢。提前感谢。 以下是我目前掌握的信息:

  • 我正在寻找一个运算符,它允许我检查字段的值是否包含某个字符串。 比如: 可能吗?