簡體   English   中英

正則表達式匹配集合,標識部分匹配.NET

[英]Regex Match Collection Identifying partial match .NET

我有一個旨在與用戶話語相匹配的字符串模式。 我正在努力使用正則表達式的比賽集合功能。

string pat = ^(?=.*\b(?:goods?|things?|items?)\b)(?=.*\bbought\b)(?=.*\bid\b).*$
string user = "I would like to see id of bought goods.";

用戶的正確匹配話語將是.ie, 我想查看購買商品的ID。

問題:

是否有可能使用匹配的收集功能在正則表達式來確定用戶是否只進入所需的話語也就是我想看到的商品 ID的一部分。 (但缺少購買了

我需要檢測模式/匹配項的缺失部分。

這樣可以提示用戶並告知他/她錯過言語購買

提前致謝。

是的,但是...... IndexOf

是的,在技術上可以使用匹配集合甚至捕獲集合(但請參見下面的討論)。 例如,

\b(?:(I|would|like|to|see|id|of|bought|goods)\b\s*)+

將一次通過匹配整個句子,第1組的“捕獲集合”將包括所有出現的單詞。

或者,您可以使用

\b(?:I|would|like|to|see|id|of|bought|goods)\b

將所有匹配項放入匹配項集合中。

但是隨后您必須檢查match集合或capture集合以查看可能遺漏了哪個單詞。 完成所有工作后,最好使用IndexOf分別查找每個單詞(如@Jerry建議)

暫無
暫無

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

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