[英]What regex should I use to check a string only has numbers and 2 special characters ( - and , ) in Java?
[英]Regex pattern to check if string has no special characters - Java
我想檢查一個字符串是否不包含 @、$ 等特殊字符,並且只包含字母數字和特殊字符,如“-”、“。”
我使用了如下的正則表達式模式,但它們都不起作用
String regex = "^[a-zA-Z0-9_-.]*$";
String regex = "+/^[a-z0-9]+(?:[._-][a-z0-9]+)*$/i";
String regex = "^([-.A-Za-z0-9]){1,20}$";
String regex = "^[a-zA-Z0-9_-.]*";
if (r.getTest().matches(regex)){}
編輯:
答案中的正則表達式工作正常,但是當將其作為條件添加到代碼中時,代碼總是返回 false,表示它包含特殊字符,而我在字符串中只有字母數字和點(。)。
他們都沒有工作。 任何幫助深表感謝。
我看到您的第一個正則表達式存在一個大問題,那就是-
。 在[
和]
之間,每個-
表示一個范圍,除非它被轉義,或者它是第一個或最后一個字符。 有了你現在所擁有的,我得到了一個例外:
Exception java.util.regex.PatternSyntaxException: Illegal character range near index 13
^[a-zA-Z0-9_-.]*$
如果我將-
移到最后,我可以成功創建一個應該工作的模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.