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