簡體   English   中英

Java正則表達式匹配為+ /-/ * /%

[英]Java Regular Expression Match on +/-/*/%

因此,我有一個要解析的字符串,而我的正則表達式無法正常工作。 我使用https://developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Global_Objects/RegExp作為我的正則表達式指南。

我希望我的正則表達式可以匹配以下任何符號。

+ - * % / 

我的代碼如下。 輸入字符串: D[1]+D[0] 應該打印true ... 但是打印false。

String tmp = "D[1]+D[0]";
if(tmp.matches("[\\+\\-\\*\\/\\%]"))
    System.out.println("true");
else
    System.out.println("false");

有任何想法嗎?

這是因為matches希望整個字符串都被匹配,而不僅僅是部分匹配。

您無需在方括號內轉義字符。

String str = "D[1]+D[0]";
Pattern p = Pattern.compile("[+-/*]");
Matcher m = p.matcher(str);
if (m.find()) {
    System.out.println("Found: " + m.group());
}

matches()必須匹配整個輸入,但是您需要做的就是在每端添加.*

if (tmp.matches(".*[-+*/%].*"))

注意: 如果連字符是第一個或最后一個, []之間的字符不需要轉義。

暫無
暫無

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

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