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

 我来答
琬若晨曦
2018-03-31 · TA获得超过8502个赞
知道小有建树答主
回答量:33
采纳率:100%
帮助的人:4981
展开全部

正则表达式,又称规则表达式。(英语: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、步骤四 : 测试和总结

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

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

CloudMonarch
推荐于2017-11-26 · TA获得超过233个赞
知道答主
回答量:127
采纳率:0%
帮助的人:160万
展开全部
Matcher m=Pattern.compile("[A-Za-z0-9\-]*").matcher(text);

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

追问

报错了

追答
"^[A-Za-z0-9\\-]+$"
疏忽了要双写\
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjgzhengxian
2014-07-04 · TA获得超过1276个赞
知道小有建树答主
回答量:736
采纳率:100%
帮助的人:375万
展开全部
Pattern.matches("^[A-Za-z0-9-]+$",string)

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

追问
这样不行的吧,“-”符号本身在正则里就有特殊用处,需要转义的吧?而且我试了下,不行
追答
可以的,不信你试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戏肖告O
2014-07-04 · TA获得超过441个赞
知道小有建树答主
回答量:331
采纳率:28%
帮助的人:184万
展开全部
^[A-Za-z0-9.]+$
追问
这个是可以包含“-”符号吗?还是其它的特殊符号都包含了?我要求是只包含数字英文大小写和“-”符号
追答
^[A-Za-z0-9-]+$
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式