【发布时间】:2012-07-18 06:40:53
【问题描述】:
我需要一个正则表达式,它既可以接受字母数字也可以接受字母,但不能单独接受数字,并且允许的特殊字符是 .(dot) 和 _(underscore)。
有效的条目是
1.ABC123de(字母数字 - 不分大小写)
2. ABCDEfgh(仅字母 - 不分大小写)
3. Abc_.123(只允许特殊字符为_和.)
无效条目:666666(仅数字)
谢谢, 巴拉吉
【问题讨论】:
标签: java
我需要一个正则表达式,它既可以接受字母数字也可以接受字母,但不能单独接受数字,并且允许的特殊字符是 .(dot) 和 _(underscore)。
有效的条目是
1.ABC123de(字母数字 - 不分大小写)
2. ABCDEfgh(仅字母 - 不分大小写)
3. Abc_.123(只允许特殊字符为_和.)
无效条目:666666(仅数字)
谢谢, 巴拉吉
【问题讨论】:
标签: java
[A-Za-z0-9._]*[A-Za-z]+[A-Za-z0-9._]*
将匹配任何带有字母数字或两个特殊字符的字符串,前提是它包含至少一个字母字符。
编辑:您似乎发现了很多要求...下面的模式将匹配以字母或_开头、以字母或数字结尾且仅由字母、数字组成的字符串、. 和 _。
^[\\p{L}_](?[\\p{L}\\d._]*[\\p{L}\\d])?$
【讨论】:
[\\p{L}\\d._]*\\p{L}+[\\p{L}\\d._]*。不过,我不确定是否将其限制为仅限葡萄牙语字母。
这个怎么样?
[0-9a-zA-Z_.]*[a-zA-Z]+[0-9a-zA-Z_.]*
它不允许使用这样的字符串:
..... ____ _._._._ 666 666. 666.6【讨论】:
试试这个正则表达式:
^\w*[a-zA-Z_\.]+\w*$
【讨论】: