我需要从字符串列表中找到所有正则表达式匹配。例如,我需要能够接受字符串“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