我以前从未做过正则表达式,而且我发现它们对于处理字符串非常有用。我看到了一些教程(例如),但是我仍然不明白如何对字符串中的十六进制字符进行简单的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] + $
问题内容: 我对和都错了。我想检查哈希是否仅包含数字。我错过了什么? 问题答案: 应该这样做。原始匹配的任何内容都只包含一位数字。
我将一个regex模式列表传递给< code>grep来检查syslog文件。它们通常匹配IP地址和日志条目; 这只是一个模式列表,例如我正在循环传递的“1\.2\.部分,因此我无法传递“-v”。 我很困惑试图做上述的逆,不匹配线与某个IP地址和错误!1.2.3.4.*已爆炸”将匹配除1.2.3.4告诉我它已爆炸之外的任何syslog行。我必须能够包括一个IP地址不匹配。 在Stack Overf
问题内容: 我有字符串,我想检查它的内容是否包含中文字符(是/否) 你能帮我么? 谢谢!阿德里安 问题答案: 您可以使用Unicode字符类http://www.regular- expressions.info/unicode.html 这只是检查是否存在至少一个汉字。如果要匹配完整的字符串,则可能需要对此进行扩展。
问题内容: 这是我的代码,以确定一个单词是否包含任何非字母数字字符: 我想知道正则表达式是否错误。我知道会匹配任何非单词字符。关于我所缺少的任何想法? 问题答案: 将您的正则表达式更改为:
我无法找到一个合适的正则表达式来匹配任何不以某种条件开头和结尾的字符串。 但用这个我不能实现面具‘。正则表达式结尾的字符。 多谢了。
问题内容: 我想匹配任何不包含字符串“ DontMatchThis”的字符串。 什么是正则表达式? 问题答案: 尝试这个: