簡體   English   中英

如何使用RegEx匹配C#中的字符串列表?

[英]How can use RegEx to match a list of strings in C#?

我需要從字符串列表中找到所有正則表達式匹配項。 例如,我需要能夠獲取字符串“This foo is foobar”並匹配“foo”或“bar”的任何實例。 這個正確的模式是什么? 另外,我需要做什么輸入衛生來防止輸入的文本破壞模式?

我有點不確定你的實際問題是什么。 要匹配“foo”或“bar”,你只需要"foo|bar"作為你的模式。 如果你想對一個字符串列表這樣做,你可能想要單獨檢查每個字符串 - 你可以先加入字符串並檢查 ,但我不確定這會有多大用處。 如果你想得到與你的模式匹配的確切文本,你應該在括號中包圍模式 - 例如"([fg]oo|[bt]ar)" ,這將匹配“foo”,“goo”,“bar “或”tar“ - 然后使用Match對象的Groups屬性來檢索這些捕獲,這樣您就可以確切地確定匹配的單詞。 Groups[1]是第一個捕獲的值(即模式中第一組括號中的值)。 Groups[0]是整場比賽。 您也可以命名您的捕獲 - "(?<word>[fg]oo|[bt]ar)" - 並按名稱 - Groups["word"]引用它們。 我建議閱讀有關正則表達式語言元素的文檔。

至於清理輸入,沒有輸入會“破壞”正則表達式。 它可能會阻止匹配,但這真的有點像正則表達式,不是嗎?

暫無
暫無

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

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