1.使用正規表示式來匹配電話號碼
在Java中,使用正規表示式匹配電話號碼是一個常見的需求。電話號碼的格式可能因國家/地區而異,但一個典型的格式可能是這樣的:(123) 456-7890
。在這個例子中,我將提供一個Java程式,該程式使用正規表示式來匹配這種格式的電話號碼。
首先,我們需要了解電話號碼的正規表示式。在這個例子中,我們將使用以下正規表示式:
regex複製程式碼
\(\d{3}\) \d{3}-\d{4}
這個表示式的意思是:
\(
和\)
匹配括號()
。\d{3}
匹配3個數字。- 空格匹配空格字元。
\d{3}-\d{4}
匹配3個數字,一個連字元,然後是4個數字。
接下來,我們來看如何在Java程式碼中使用這個正規表示式來匹配電話號碼:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PhoneNumberMatcher {
public static void main(String[] args) {
// 測試字串
String text = "Here is a sample text with a phone number (123) 456-7890 in it.";
// 正規表示式
String regex = "\\(\\d{3}\\) \\d{3}-\\d{4}";
// 建立 Pattern 物件
Pattern pattern = Pattern.compile(regex);
// 建立 matcher 物件
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
System.out.println("Found a phone number: " + matcher.group());
} else {
System.out.println("No phone number found.");
}
}
}
這段程式碼首先匯入了必要的Pattern
和Matcher
類,然後定義了一個測試字串和一個正規表示式。接著,它使用Pattern.compile()
方法編譯正規表示式,並使用matcher()
方法建立Matcher
物件。最後,使用find()
方法查詢匹配項,並使用group()
方法輸出找到的電話號碼。
這段程式碼是一個完整的Java程式,可以直接執行,並測試正規表示式匹配電話號碼的功能。透過修改測試字串,我們可以測試不同的電話號碼格式。
2.使用Java正規表示式匹配電話號碼示例
以下是一些使用Java正規表示式匹配電話號碼的例子。每個例子都包含了一個測試字串和一個正規表示式,以及如何使用Pattern
和Matcher
類來查詢和匹配電話號碼。
2.1 例子 1:匹配標準格式的電話號碼
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PhoneNumberMatcher {
public static void main(String[] args) {
// 測試字串
String text = "Call me at (123) 456-7890 or visit my website.";
// 正規表示式
String regex = "\\(\\d{3}\\) \\d{3}-\\d{4}";
// 建立 Pattern 物件
Pattern pattern = Pattern.compile(regex);
// 建立 matcher 物件
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
System.out.println("Found a phone number: " + matcher.group());
} else {
System.out.println("No phone number found.");
}
}
}
輸出:
複製程式碼
Found a phone number: (123) 456-7890
2.2 例子 2:匹配帶有空格和括號的電話號碼
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PhoneNumberMatcher {
public static void main(String[] args) {
// 測試字串
String text = "My phone number is ( 123 ) 456 - 7890. Please call me.";
// 正規表示式,允許空格
String regex = "\\(\\s*\\d{3}\\s*\\)\\s*\\d{3}-\\d{4}";
// 建立 Pattern 物件
Pattern pattern = Pattern.compile(regex);
// 建立 matcher 物件
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
System.out.println("Found a phone number: " + matcher.group());
} else {
System.out.println("No phone number found.");
}
}
}
輸出:
複製程式碼
Found a phone number: ( 123 ) 456 - 7890
2.3 例子 3:匹配多種格式的電話號碼
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PhoneNumberMatcher {
public static void main(String[] args) {
// 測試字串
String text = "You can reach me at (123) 456-7890 or 123.456.7890 or 123-456-7890.";
// 正規表示式,匹配多種格式
String regex = "\\(\\d{3}\\)\\s*\\d{3}-\\d{4}|\\d{3}[.-]\\d{3}[.-]\\d{4}|\\d{3}-\\d{3}-\\d{4}";
// 建立 Pattern 物件
Pattern pattern = Pattern.compile(regex);
// 建立 matcher 物件
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println("Found a phone number: " + matcher.group());
}
}
}
輸出:
Found a phone number: (123) 456-7890
Found a phone number: 123.456.7890
Found a phone number: 123-456-7890
這些例子展示瞭如何使用Java正規表示式來匹配不同格式的電話號碼。我們可以根據需要調整正規表示式來匹配特定的電話號碼格式。