[英]Telephone number category using regex pattern
我想獲得用戶輸入的電話號碼。 我有2個數字類別,黃金和普通。 當用戶輸入特定的電話號碼格式時,系統會自動將其確定為“黃金”或“正常”。 我在編碼某些模式時遇到問題。 黃金模式編號之一是這樣的:AB001234其中AB是編號12,23,34,45,56,67,78和89之類的。到目前為止,我得到了什么。
public static void main(String[] args) {
Scanner userinput = new Scanner(System.in);
System.out.println("Enter Telephone Number");
String nophone = userinput.next();
String Golden = "(\\d)(\\1)002345|(\\d*)12345$";
//I want to add AB001234 pattern to the line above but I don't know how.
if (nophone.matches(Golden)) {
System.out.println("Golden");
}
else {
System.out.println("Normal");
}
}
我不確定我是否真的必須使用正則表達式。 還有一個問題,您可以看到String Golden的第一部分沒有$,而第二部分則有$。 我不確定放置或刪除$符號的效果。
(\\\\d)(\\\\1)
不檢查該序列像12
, 23
等..相反,它會檢查像兩個SMAE連續的數字11
, 22
, 33
,...
要檢查順序,您必須使用Pipe(|)
- (12|23|34|45|...)
顯式地進行操作
因此,您的Golden Number
格式應如下所示:-
^(?:12|23|34|45|56|67|78|89)001234$
(?:..)
-表示non-capturing group
。 在您的圖案中,它不會被捕獲為帶編號的組。
注意:-如果sequence
的長度不同,則Regex
不是匹配它們的適當方法。
對於第二個問題, $
表示字符串的結尾。 因此,以$
結尾的模式將在字符串的末尾匹配。 另外, Caret (^)
可以匹配字符串的開頭。
例如:-
abc$
與字符串"asdfabc"
匹配,但與"asdfabc"
不"sdfabcf"
。 ^abc
與字符串"abcfsdf"
匹配,但與"abcfsdf"
不"sdfabcf"
。 ^abc$
只匹配字符串"abc"
,因為它是唯一以"abc"
開頭和結尾的字符串。 您可以通過以下鏈接來了解有關Regexp
更多信息:-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.