[英]How to use Pattern.matches with regex to filter unwanted characters in a string
[英]How to get Pattern.matches(regex, str) to return false when str is dot (“.”)?
我想檢查字符串是否是數學運算符(+,-,*,/)。 我正在使用matchs方法根據正則表達式檢查字符,但是在檢查僅包含點(“。”)的字符串時,它始終返回true。 這是代碼:
String dot = ".";
if(dot.matches("[*+-/]"))
System.out.println("BAD");
else
System.out.println("GOOD");
打印“ BAD”。 我知道這可能與“。”有關。 在正則表達式中匹配所有內容,但我不明白為什么這會有所作為。 有什么辦法讓這個返回假? 謝謝。
不,您調用的String
matches
不被視為正則表達式。 從字面上看。
您的情況是打印BAD
,因為此[*+-/]
是一個字符類,其中.
介於+
和/
之間。 將-
移至末尾,以免創建范圍[*+/-]
。
我將建議用於解決此問題的工具。
嘗試使用regexr,它色彩繽紛,在側邊欄上也有幫助,您可以在需要和不希望匹配的所有情況下更好地編寫正則表達式。
要開始使用,請查看此處編寫的真正的基本正則表達式: http : //regexr.com/3af78 。
\d [*+/-] \d
由於我不知道您希望檢查的嚴格程度或寬松程度,因此我添加了您可能會或可能不會考慮的其他字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.