正则表达式,用于在其中包含一个或多个字母的字符串

时间:2014-04-10 22:31:23

标签: java regex

如果字符串在其中的任何位置包含一个或多个字母,那么正则表达式将被评估为true。

例如:

1222a3999将是真的

a222aZaa将是真的

aaaAaaaa将是真的

但:

1111112())--将是假的

我尝试过:^[a-zA-Z]+$[a-zA-Z]+但是当字符串中有任何数字和其他字符时都不起作用。

4 个答案:

答案 0 :(得分:4)

.*[a-zA-Z].*

上述意思是一个字母,在它之前/之后 - 一切都很好。

在java中:

String regex = ".*[a-zA-Z].*";
System.out.println("1222a3999".matches(regex));
System.out.println("a222aZaa ".matches(regex));
System.out.println("aaaAaaaa ".matches(regex));
System.out.println("1111112())-- ".matches(regex));

将提供:

true
true
true
false

按预期

答案 1 :(得分:2)

这个正则表达式应该这样做:

[a-zA-Z]

只要字符串中的任何地方都有单个字母,它就匹配,它不关心任何其他字符。

[a-zA-Z]+

应该也有效,我不知道为什么它不适合你。

答案 2 :(得分:1)

^.*[a-zA-Z].*$

根据实施情况,match()函数会检查整个字符串是否匹配(这可能是您的[a-zA-Z][a-zA-Z]+模式不起作用的原因)

使用上述模式match()或使用某种search()方法。

答案 3 :(得分:0)

.*[a-zA-Z]?.*

应该得到你想要的结果。

句号与除新行之外的任何字符匹配,星号表示这应该存在零次或多次。那么模式[a-zA-Z]?因为使用了问号,所以至少给我一个括号内的字符。最后结尾。*表示字母字符后面可以跟零个或多个任何类型的字符。