簡體   English   中英

Java正則表達式如何檢查該字符串不為空?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM