java正则表达式,要求字符串只能包含数字、英文大小写、以及“-”符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java正则表达式,要求字符串只能包含数字、英文大小写、以及“-”符号相关的知识,希望对你有一定的参考价值。

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

下面介绍具体的方法。

1、步骤一  : 新建一个工程和类

我们在这个类中开发相关的代码,先看看 java.util.regex 这个包吧。

2、步骤二 : 类 Pattern 的使用

类Pattern , 其一个对象就代表一种指定的正则表达式,我们通过这个类和一些正则表达式的规则来生成自己想要的字符串匹配规则!

这个类,你无法通过 new 来创建对象,其提供了一个静态方法 compile("正则规则串")来创建对象, 比如我们想要一个以 "java" 开头的字符串匹配规则,我们会用如下代码 Pattern 对象 : 

Pattern pattern = Pattern.compile("^java");

注意 : ^ 这个符号是正则表达式中的规则,表示字符串的开头!关于其他规则,我们后面会有相关经验给大家逐一介绍!

3、步骤三 : 类 Matcher 的使用

类 Matcher, 代表一个串在特定Pattern对象下的匹配结果,我们通过这个结果可以知道这个串是否符合我们的要求 (我们的具体要求在 Pattern 对象中体现!)。使用方法为 : 

// 先构建一个特定的 Pattern 对象
Pattern pattern = Pattern.compile("^java"); 
// 调用 Pattern 对象的 matcher 方法,传入一个串,得到匹配结果!
Matcher matcher = javaPrefixPattern.matcher("一个字符串");

4、步骤四 : 测试和总结

运行代码,查看程序运行效果!正则表达式的整个使用框架就是这样,其不同的应用场景基本就是不同的匹配规则!

总结 :正则表达式的彪悍,主要在于其很多成熟的规范的语义规则,通过这些规则的灵活使用,我们可以把一种复杂的匹配需求用一个规则串表达出来!

参考技术A Matcher m=Pattern.compile("[A-Za-z0-9\\-]*").matcher(text);

 允许空字符串就最后用*.不允许就+

追问

报错了

追答

"^[A-Za-z0-9\\-]+$"
疏忽了要双写\

本回答被提问者采纳
参考技术B Pattern.matches("^[A-Za-z0-9-]+$",string)

+是一个或多个,0个或多个用*

追问

这样不行的吧,“-”符号本身在正则里就有特殊用处,需要转义的吧?而且我试了下,不行

追答

可以的,不信你试试

参考技术C ^[A-Za-z0-9.]+$追问

这个是可以包含“-”符号吗?还是其它的特殊符号都包含了?我要求是只包含数字英文大小写和“-”符号

追答

^[A-Za-z0-9-]+$

以上是关于java正则表达式,要求字符串只能包含数字、英文大小写、以及“-”符号的主要内容,如果未能解决你的问题,请参考以下文章

JAVA正则表达式判断 只能包含汉字、英文、“_”和数字 ,正则该怎么写呢?

php 正则表达式 只能包含字母和数字

Java 正则表达式 限定字符串中只能包含字母,数字和连接符- 怎么写?

求一个正则表达式只能输入数字小数点后两位和

用js的正则表达式检测电话号码,要求必须是1开头,只能是11位数字,该正则表达式怎么写?

java正则表达式,要求是匹配的字符串,只能包含3或5或6这3个数字并且每个数字由;隔开