当前位置:  开发笔记 > 编程语言 > 正文

在java正则表达式中,如何获得一个字符类,例如[az]来匹配 - 减号?

如何解决《在java正则表达式中,如何获得一个字符类,例如[az]来匹配-减号?》经验,为你挑选了3个好方法。

不要在字符之间加上减号.

"[a-z-]"

这个*是我所知道的每个正则表达方言中的正确语法.如果在符号类的开头或结尾处,减号不*必须被转义. (5认同)

我真的不确定这是标准的regexp语法.我不怀疑它是否有效,但几乎肯定不是最佳做法. (2认同)


albertein.. 7

逃避减号[az\ - ]



1> Tomalak..:

不要在字符之间加上减号.

"[a-z-]"


这个*是我所知道的每个正则表达方言中的正确语法.如果在符号类的开头或结尾处,减号不*必须被转义.
我真的不确定这是标准的regexp语法.我不怀疑它是否有效,但几乎肯定不是最佳做法.

2> albertein..:

逃避减号[az\ - ]



3> codaddict..:

在字符类[...]a -中,如果它被两边的字符包围,则会被特别处理(作为范围运算符).这意味着如果你-在字符类的开头或结尾包含它,它将被字面上处理(非特殊).

所以你可以使用正则表达式:

^[a-z-]+$

要么

^[-a-z]+$

由于-我们添加的内容正在逐字处理,因此无需逃避它.虽然如果你这样做并不是一个错误.

另一种(不太推荐)的方法是不在-字符类中包含:

^(?:[a-z]|-)+$

请注意,在这种情况下,括号不是可选的,因为|它具有非常低的优先级,因此使用括号:

^[a-z]|-+$

将匹配字符串开头的小写字母和-末尾的一个或多个.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有