[英]Create regex match pattern from a string
有沒有辦法使用 c# 或 vb 來獲取一個字符串(在這種情況下是電話號碼)並從中構造一個正則表達式匹配字符串,以便它也忽略其中的空格或其他字符?
因此,假設輸入字符串為 01789000111 ,則會在所有這些中找到匹配項:-
01789 000111 或 01789 000 111 或 01789 00 01 11 或 (01789) 000111
使用正則表達式替換刪除非數字然后比較:
var match = Regex.Replace(src, @"\D+", "") == target;
或者,您可以將目標數字轉換為模式並進行測試:
var ans = Regex.IsMatch(src, Regex.Replace(target, @"\d", @"\D?$0\D?"))
如果您將大量src
字符串與目標進行比較,您可能應該從目標創建一個已編譯的Regex
:
var tpattern = new Regex(Regex.Replace(target, @"\d", @"\D?$0\D?"), RegexOptions.Compiled);
var ans = tpattern.IsMatch(src);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.