正则表达式括号或数字起始行

时间:2015-03-07 00:38:56

标签: java regex string object

我是正则表达式的新手并试图通过此声明。我试图做的是检查字符串中的第一个字符。

我想看到如果它以数字开头,则该语句将为真。我还想检查一下,如果第一个字符是"("那么我想检查下一个数字是否也是数字。

到目前为止,我已经:

if (str.matches("^[(?\d")){
return true;

但这似乎不起作用。 ^用于锚定开始,(?检查可选括号,然后检查它后面是否为数字。我怎么塞满了?

所以0800,(0800,(09,09)应该通过* 08,(* 0,AB,(AB,* AB)应该失败。

由于

2 个答案:

答案 0 :(得分:2)

您需要删除左方括号并转义元字符。此外,matches()告诉整个字符串是否与给定的正则表达式匹配。因此,您需要在之后添加令牌.*以贪婪地匹配字符串中的每个字符。

if (str.matches("\\(?\\d.*")) { ... }

Ideone Demo

答案 1 :(得分:1)

这个正则表达式可以解决这个问题:

^\d.*|^\(\d.*

在Java中,转义反斜杠:

if (str.matches("^\\d.*|^\\(\\d.*"))