[英]How check that string is NOT blank by java regular expression?
有查找空白字符串的正則表達式,我只想取反。 我也看到了這個問題,但不適用於Java(請參見示例)。 解決方案對我也不起作用(請參見示例中的第3行)。
例如
Pattern.compile("/^$|\\s+/").matcher(" ").matches() - false
Pattern.compile("/^$|\\s+/").matcher(" a").matches()- false
Pattern.compile("^(?=\\s*\\S).*$").matcher("\t\n a").matches() - false
在兩種情況下都返回false。
PS:如果不清楚,請問我問題。
更新
我想在@Pattern批注中使用此正則表達式,而不為其創建自定義批注和程序驗證器。 這就是為什么我想要一個不使用find函數的“普通”正則表達式解決方案的原因。
否定你的意思還不清楚。
如果您的意思是“包含至少一個非空白字符的字符串”,則可以使用以下命令:
Pattern.compile("\\S").matcher(str).find()
如果確實需要使用matches
,那么您可以這樣做。
Pattern.compile("\\A\\s*\\S.*\\Z").matcher(str).matches()
這僅匹配0個或多個空格,后跟一個非空格,然后是直到字符串末尾的所有字符。
如果您的意思是“一個至少有一個這樣的字符的非空白字符串”,那么您可以使用以下命令:
Pattern.compile("\\A\\S+\\Z").matcher(str).matches()
您需要學習Java regex語法 。 在Java中,正則表達式是從字符串編譯而成的,因此不需要像其他語言中那樣的特殊分隔符,例如/.../
或%r{...}
。
這個怎么樣:
if(!string.trim().isEmpty()) {
// do something
}
使用regex
\\s
:空格字符: \\t\\n\\x0B\\f\\r
。
Pattern.compile("\\s")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.