簡體   English   中英

如何在Java Regex中限制多個空格?

[英]How to restrict more than one whitespace in Java Regex?

將為JavaFX文本字段開發一種驗證,其中允許單個空格,但不允許多個空格。

例如,“ Apple Juice”(蘋果汁)-正確的“ Apple Juice”(蘋果汁)-錯誤應該受到限制

if (title.matches("[a-zA-Z0-9 ]+"))

找到了幾個鏈接,但不符合我的要求。 我認為這更多是合乎邏輯的調整。

空格匹配正則表達式-Java

正則表達式允許在Java中使用空格字符

你可以做:

if (title.matches([a-zA-z]+[ ][a-zA-Z]+))
  • 第一個[a-zA-z]+檢查空格之前的所有字符。
  • [ ]檢查一個空格。
  • 第二個[a-zA-z]+檢查空格后是否有任何字符。


注意:僅當字符串之間存在空格時,此選項才匹配。 如果要匹配像字符串Abcd<space><space>Abcd ,(I使用<spcace>如SO不允許兩個空間,以同時存在),那么可以更換+ s的*峰,即

 if (title.matches([a-zA-z]*[ ][a-zA-Z]*)) 

你可以做

if ("Apple Juice".matches("\\w+ \\w+")) {
 .......

您最好找到多個空格,然后取反:

if(!title.trim().matches("\s{2,}"))

,請參見java.util.regex.Pattern javadoc的語法。 字符串首先被修剪,因此您無需檢查非空白字符。 如果不執行trim()操作,則還會考慮前導和尾隨空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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