【问题标题】:Regular expression in jspjsp中的正则表达式
【发布时间】:2012-07-18 06:40:53
【问题描述】:

我需要一个正则表达式,它既可以接受字母数字也可以接受字母,但不能单独接受数字,并且允许的特殊字符是 .(dot) 和 _(underscore)。

有效的条目是

1.ABC123de(字母数字 - 不分大小写)
2. ABCDEfgh(仅字母 - 不分大小写)
3. Abc_.123(只允许特殊字符为_和.)

无效条目:666666(仅数字)

谢谢, 巴拉吉

【问题讨论】:

    标签: java


    【解决方案1】:

    [A-Za-z0-9._]*[A-Za-z]+[A-Za-z0-9._]*

    将匹配任何带有字母数字或两个特殊字符的字符串,前提是它包含至少一个字母字符。

    编辑:您似乎发现了很多要求...下面的模式将匹配以字母或_开头、以字母或数字结尾且仅由字母、数字组成的字符串、._^[\\p{L}_](?[\\p{L}\\d._]*[\\p{L}\\d])?$

    【讨论】:

    • 谢谢,我尝试了 1 天,然后你给了我一个很好的解决方案。再次感谢 Jacob
    • 很高兴它似乎有效! @downvoter 愿意解释一下吗?如果我犯了错误,我想知道。
    • 嗨,Jacob,除了 _(下划线)和 .(点),我们能否让上述表达式接受其他语言字符,例如葡萄牙语。
    • @balaji \\p{L} 将匹配 any 字母,因此正则表达式将为 [\\p{L}\\d._]*\\p{L}+[\\p{L}\\d._]*。不过,我不确定是否将其限制为仅限葡萄牙语字母。
    • 嗨,是的,您是正确的,这不仅仅是限制葡萄牙语,我尝试使用您提供的那个,但它不接受,我也尝试将 d 替换为 0-9,甚至然后我无法得到解决方案。由于我们有 [A-Za-z0-9._]*[A-Za-z]+[A-Za-z0-9._]* 完美运行,我们可以让它适用于所有语言。
    【解决方案2】:

    这个怎么样?

    [0-9a-zA-Z_.]*[a-zA-Z]+[0-9a-zA-Z_.]*

    它不允许使用这样的字符串:

    ..... ____ _._._._ 666 666. 666.6

    【讨论】:

      【解决方案3】:

      试试这个正则表达式:

      ^\w*[a-zA-Z_\.]+\w*$
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-29
        • 1970-01-01
        • 1970-01-01
        • 2015-12-13
        • 2015-04-27
        相关资源
        最近更新 更多