正则表达式匹配错误的模式

时间:2013-11-25 19:15:49

标签: c# regex powershell

我正在尝试使用正则表达式向前看文本中的文本并在此答案中查看foudn:

Regular Expression to find a string included between two characters while EXCLUDING the delimiters

我必须使用的分界符是

开始:RQ

结束:END-RQ

我添加了以下(powershell)代码:

$regex = [regex] '(?<=RQ)(.*?)(?=END-RQ)' 

$matches = $regex.Matches($concat) 

问题是匹配是从END-RQ抓取RQ作为下一个模式的开始。任何人都可以告诉我如何消除它(例如强制正则表达式完全匹配RQ和END-RQ)?将引号中的匹配模式包装似乎不起作用,即使报价被转义。

3 个答案:

答案 0 :(得分:5)

试试这个:

$regex = [regex] '(?<=(?<!END-)RQ)(.*?)(?=END-RQ)'

答案 1 :(得分:0)

你应该下载这个应用程序:

http://www.sellsbrothers.com/posts/Details/12425

尝试调试正则表达式时是无价的。

答案 2 :(得分:0)

这可能有用(很难说不确切知道你的数据是什么):

$regex = [regex]'(?<=(?:^|[^-])RQ)(.*?)(?=END-RQ)'