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