正则表达式特定的字符顺序

时间:2014-05-17 01:25:57

标签: java regex

我在java编程语言中遇到了一些RegEx问题。我不太确定我是否需要别的东西,但这是我的问题:

我想检查一个特定的字符串是否包含任何字母后跟任意4个数字。

我一直在修补它并且遇到了一些麻烦。任何指针都将不胜感激,谢谢。

3 个答案:

答案 0 :(得分:3)

简单,匹配任何字母的character class,后跟任意数字repeated 4 times的字符类。

[a-zA-Z][0-9]{4}

Demo


仅供参考,我包含了3个链接,因为这些是您学习的好资源。这是一个非常简单的任务,如果你做一些阅读,你会比你想象的更快地学习正则表达式。

答案 1 :(得分:2)

根据您对特定字符串的定义,您可以使用与您的正则表达式匹配的String.matches()函数与整个字符串或Matcher.find()如果您要搜索对于字符串中的某个模式。

您可以使用以下正则表达式:

[a-zA-Z][0-9]{4}

正则表达式:

[a-zA-Z]        any character of: 'a' to 'z', 'A' to 'Z'
[0-9]{4}        any character of: '0' to '9' (4 times)

答案 2 :(得分:2)

您想要的正则表达式为\p{L}\d{4},因为\p{L}是POSIX类,表示“letter”,\d表示数字。这样做的好处是可以用英语以外的语言来捕捉字母,而[a-zA-Z]则不会。有关详细信息,请参阅Pattern Javadoc

要将此表达式编写为String字面值,您可以使用"\\p{L}\\d{4}"。要在String中找到它,您可以使用matches方法,并将.*添加到开头和结尾,就像这样。

if (myString.matches(".*\\p{L}\\d{4}.*")) {
    // Do something
}