簡體   English   中英

當str為點(“。”)時,如何獲取Pattern.matches(regex,str)返回false?

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

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