簡體   English   中英

缺少右括號

[英]Missing closing bracket

在索引 13 |\?*<":>+[]/' 附近的字符 class 中缺少右括號 我的代碼:

Pattern.compile("|\\?*<\":>+[]/'").matcher(name).matches()

您可以使用

Pattern.compile("[|\\\\?*<\":>+\\[\\]/']+").matcher(name).matches()

正則表達式的意思是:

  • [ - 正字符 class 的開頭:
    • | - pipe
    • \\ - 一個反斜杠(需要在字符串文字中添加額外的反斜杠, "\\\\"
    • ? - 一個問號
    • * - 一個星號
    • < - 一個開放的尖括號
    • " - 雙引號
    • : - 一個冒號
    • > - 右尖括號
    • + - 一個加號
    • \[ - 一個[字符(當[在字符類中時必須轉義)
    • \] - 一個]字符(當]在字符類中時必須轉義)
    • / - 正斜杠
    • ' - 一個單引號
  • ]+ - 字符 class 結束,出現 1 次或多次。

因此,這將驗證僅包含 1 次或多次出現這些字符的字符串。 如果您需要相反的內容,請在第一個[之后添加^

Pattern.compile("[^|\\\\?*<\":>+\\[\\]/']+").matcher(name).matches()
//                ^ 

Java 演示

String name = "Wiktor Stribiżew";
System.out.println(Pattern.compile("[^|\\\\?*<\":>+\\[\\]/']+").matcher(name).matches());
// => true

暫無
暫無

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

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