簡體   English   中英

從字符串創建正則表達式匹配模式

[英]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.

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