正则表达式检查字符串仅包含十六进制字符

我以前从未做过正则表达式,而且我发现它们对于处理字符串非常有用。我看到了一些教程(例如),但是我仍然不明白如何对字符串中的十六进制字符进行简单的Java正则表达式检查。

用户将在文本框中输入类似以下内容:0123456789ABCDEF我想知道该输入是正确的,否则,如果XTYSPG456789ABCDEF返回false时类似。

是否可以使用正则表达式来做到这一点,或者我是否误解了它们的工作原理?

回答:

是的,您可以使用正则表达式来做到这一点:

^ [0-9A-F] + $

说明:

^行首。

[0-9A-F]字符类:0到9或A到F中的任何字符。

+量词:以上一项或多项。

$行尾。


要在Java中使用此正则表达式,您可以例如matches在String上调用方法:

boolean isHex = s.matches("[0-9A-F]+");

请注意,matches仅查找完全匹配,因此在这种情况下不需要行锚的开始和结束。看到它在线上工作:ideone

您可能还希望同时允许大写和小写AF,在这种情况下,您可以使用以下正则表达式:

^ [0-9A-Fa-f] + $

以上是 正则表达式检查字符串仅包含十六进制字符 的全部内容, 来源链接: utcz.com/qa/415044.html

回到顶部