正则表达式关键字

时间:2009-05-30 22:11:11

标签: c# regex

我正在尝试在C#中使用Regex来查找一堆文本中的关键字列表。但是,我想非常具体地说明“周围”文本可以用来作为关键字的东西。

因此,例如,关键字“hello”应该在(hello),hello。,hello<中找到。但不是在hellothere。

我的主要问题是我不需要分隔符,如果关键字是第一个单词或最后一个单词就可以了。我想另一种看待它的方法是文件的开头和文件的结尾应该是可接受的分隔符。

我是Regex的新手,所以我希望有人可以帮我把模式弄好。到目前为止,我有:

[ <(.]+?keyword[<(.]+?

其中&lt;,(,。是一些示例分隔符和关键字当然是我正在寻找的关键字。

提前致谢

3 个答案:

答案 0 :(得分:3)

您可以使用word boundary锚:

\bkeyword\b

只有在不是大字的一部分时才会找到您的关键字。

答案 1 :(得分:0)

您需要查看word boundary(\ b),以避免匹配显示为另一个词的一部分的关键字(如您的hellothere示例中所示)。

您还可以在行首(^)和行尾($)添加匹配,以控制关键字可能出现的位置。

答案 2 :(得分:-1)

我想你想要这样的东西:

(^$|[ <(.])+?keyword($|[<(.]+?)

^$字符分别表示输入文本的开头和结尾。 (如果指定Multiline选项,它会匹配行的开头/结尾而不是文本,但您似乎需要Singleline选项。)