正则表达式 - 查找模式

时间:2017-09-12 13:15:36

标签: c# regex

我想使用正则表达式来匹配短语的所有出现,而这些短语中没有包含某些分隔字符。我尝试将一个放在一起,但对负面的前瞻有一些困难。

我的搜索短语是"我的短语"。起始分隔符标记是[[和结束分隔符标记]]。我想要搜索的字符串是:

这是一个带有我的短语的句子,这是我不想在[[我的短语]]上匹配的另一部分。我想找到我的短语的出现。

从这个字符串我希望找到所有出现的"我的短语"除了[[]]中包含的那个。

我希望这是有道理的,提前感谢任何指导。

2 个答案:

答案 0 :(得分:1)

[^#]my phrase[^#]

我已经找到了一个可以做你要求的RegEx,可以看到here

字面上只是将#作为一个字符转出,并允许返回任何其他字符。您可以返回这些结果的索引,但记得去除字符串的第一个和最后一个字符。

注意:这不会选择任何“我的短语”结束句子而后面没有字符

编辑 - 在我写这个答案时看到你改变了范围,  这是另一个分隔符的RegEx:

[^[[]my phrase[^\]\]]

答案 1 :(得分:1)

(?<=[^\[])my phrase(?=[^\]]*)

这也将消除拖尾标点符号。