【问题标题】:Java : String.matches()Java : String.matches()
【发布时间】:2012-04-22 12:49:44
【问题描述】:

我想确定一个字符串是否仅由两个单词组成,它们之间有一个空格字符。第一个单词应仅包含字母数字字符。第二个应该只包括数字。一个例子是:asd 15

我想使用String.matches。我该怎么做或应该使用哪个正则表达式?

提前致谢。

【问题讨论】:

    标签: java regex string


    【解决方案1】:

    你寻找类似的东西:

    String regex = "^[A-Za-z]+ [0-9]+$";
    

    解释:

    ^         the beginning of the string (nothing before the next token)
    [A-Za-z]+ at least one, but maybe more alphabetic chars (case insensitive)
              a single space (hard to see :) )
    [0-9]+    at least one, but maybe more digits
    $         end of the string (nothing after the digits)
    

    【讨论】:

    • 感谢 Binyamin Sharet 和 Juan Alberto Lopez Caval。两种解决方案都有效,此外,我想检查第一个单词是否只能在其开头包含数字,我该怎么做?
    • 第一个单词在我看来不是字母数字。缺少数字。
    • @userunknown - 我误读了这个问题,但似乎是 OP 的意思(见他的例子)
    • 如果题错了,应该改。一个没有回答问题的公认答案非常令人恼火。
    【解决方案2】:

    你可以试试这个正则表达式

    "[A-Za-z0-9]+\\s[0-9]+"
    

    【讨论】:

      【解决方案3】:

      试试这个:String pattern = new String("^[0-9]*[A-Za-z]+ [0-9]+$")

      【讨论】:

      • 问题要求输入字母数字字符串,即^[0-9A-Za-z]+...
      • 请阅读 Predoryx 评论的第二部分...感谢 Binyamin Sharet 和 Juan Alberto Lopez Caval。两种解决方案都有效,另外,我想检查第一个单词是否只能在其开头包含数字,我该怎么做?
      • 你的回答是对问题的回答还是对评论的回答?
      猜你喜欢
      • 1970-01-01
      • 2012-04-24
      • 2011-11-01
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 2011-06-13
      • 1970-01-01
      相关资源
      最近更新 更多