我需要從字符串列表中找到所有正則表達式匹配。例如,我需要能夠接受字符串「This foo is a foobar」並匹配「foo」或「bar」的任何實例。這個正確的模式會是什麼?另外,我需要做什麼輸入衛生來防止輸入的文本打破模式?如何使用RegEx來匹配C#中的字符串列表?
1
A
回答
4
我有點不確定你的實際問題是什麼。要匹配「foo」或「bar」,您只需要"foo|bar"
即可。如果你想這樣做一個字符串列表,你可能想要單獨檢查每個字符串 - 你可以加入字符串,並檢查,,但我不知道這將是很有用的。如果要獲取與模式匹配的確切文本,則應該將模式括在括號中,例如"([fg]oo|[bt]ar)"
,它們將匹配「foo」,「goo」,「bar」或「tar」 - 然後使用Groups
屬性的Match
對象來檢索這些捕獲,所以你可以確定究竟哪個詞匹配。 Groups[1]
是第一個捕獲值(即模式中第一組括號中的值)。 Groups[0]
是整場比賽。您還可以命名您的捕獲 - "(?<word>[fg]oo|[bt]ar)"
- 並通過名稱引用它們 - Groups["word"]
。我會建議閱讀regular expression language elements的文檔。
至於消毒輸入,沒有任何輸入可以「破壞」正則表達式。它可能會阻止比賽,但這真的有點正則表達式是一回事,不是嗎?
相關問題
- 1. Powershell RegEx:如何將兩行匹配的字符串匹配?
- 2. 如何從Regex獲取匹配的字符串? [C#]
- 3. RegEx在字符串中多次匹配
- 4. 如何使用Python Regex匹配以下字符串?
- 5. 如何在字符串之前使用regex整數匹配?
- 6. RegEx字符匹配
- 7. 如何查找列表中的列表的匹配字符串?
- 8. 使用tr1 :: regex_search來匹配一個大的字符串列表
- 9. 如何加快與字符串列表的字符串匹配?
- 10. 在C中包含CRLF的RegEx匹配字符串#
- 11. 使用ReGex來匹配表達式,Python
- 12. C# - 如何使用Linq和Regex從單個字符串實現多個匹配?
- 13. RegEx模式匹配字符串
- 14. 從列表中匹配的字符串
- 15. 如何使RegEx查詢只匹配整個字符串?
- 16. 如何匹配 '{{{' 使用RegEx
- 17. REGEX與2個字符串之間的任何字符匹配
- 18. 如何在RegEx中匹配整個字符串?
- 19. JavaScript REGEX:如何從字符串中提取某些匹配項?
- 20. 找到列表c中字符串的最長匹配c#
- 21. regEx:匹配兩組字符
- 22. RegEX:如何匹配未包圍的字符串
- 23. 如何在Objective C中通過字符來匹配字符串字符?
- 24. 如何使用不包括數字的字符串匹配列
- 25. 用於匹配+ n字符的Java RegEx
- 26. 的Python:列表和字符串匹配
- 27. 如何在字符串列表中找到匹配的字符串
- 28. 如何字符串匹配正則表達式中的C++
- 29. 正則表達式來匹配不同的字符串列表
- 30. RegEx如何檢查字符串的長度,同時也使用匹配組
對不起,如果這不是一個真正的答案,但我會推薦你免費的工具[Expresso] [1] ..它使正則表達式開發更容易像你的情況。 [1]:http://www.ultrapico.com/Expresso.htm – rodbv 2009-01-05 21:17:53
如果您瞭解正則表達式的基礎知識,則正則表達式工具最有用。也許這個問題寫得不好,但看起來OP完全不熟悉Regex。匹配(foo | bar)是正則表達式101. – abelenky 2009-01-05 21:34:00