簡體   English   中英

檢查兩個字符串是否包含相同的模式

[英]Check if two Strings contain the same pattern

我的應用程序將需要在輸入的字符串和存儲在數據庫中的字符串之間的字符串匹配功能。 這些字符串涉及產品尺寸(例如長度,高度等)。我的目標是檢查輸入的字符串是否已經存在於我的數據庫中,但可能還有其他模式,例如:

輸入:如果我的數據庫中有“ vis 4X40”或“ vis 4 x 40”或“ vis 4 * 40”之類的內容,則“ vis 4 * 40”應返回true。

我發現的唯一方法是使用regexp替換如下模式來規范我的數據庫:

 \d+ *[xX*] *\d+

使用歸一化的字符串(例如NumberXNumber),對輸入中的字符串執行相同的操作,然后嘗試查找它。 但是我想知道是否已經存在任何工具,並且可以允許我這樣做。 (我正在使用C#.NET V4)

更好的方法是將兩個數據連接起來然后匹配它們

string target=inputString+"#"+storedString;

if(Regex.IsMatch(target,"(\d+) *[xX*] *(\d+)#\1 *([xX*]) *\2"))
        //the string is in the database
else
       //it is not

只需使用用戶提供的通配符,將*替換為%並查詢您的表: SELECT col FROM table WHERE col LIKE 'vis 4%40'

確保您使用參數執行查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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