正则表达式麻烦,结合消极和积极匹配

时间:2018-06-11 08:30:48

标签: javascript regex

我遇到了很多问题,为我的问题创造了完美的正则表达式。希望有人在这里可以帮助我。 我正在尝试在SQL查询中找到所有变量。

举个例子:

select *, 'string with :port in the text'
from table
where a = :variable
// and this is commented out :oldvariable

我们曾使用r':(\w+)'查找变量,以查找:后面的所有字词。 不过,我想过滤掉//背后的行以及""''

中的所有内容

正则表达式的首选输出应为:variable

:port& :oldvariable不应该在那里。

我可以每行执行正则表达式,这样可能有助于解决方案。

1 个答案:

答案 0 :(得分:0)

这是php中的一个例子

<?php

$testo_pagina = "select *, 'string with :port in the text'
from table
where a = :variable
// and this is commented out :oldvariable";

if(preg_match_all('~^([\w\s\*,=]+)(:.+?)\b~im', $testo_pagina, $matches, PREG_SET_ORDER))
{
    foreach ($matches as $key => $value)
    {
        print_r($value);
    }
}

输出是:

Array
(
    [0] => from table
where a = :variable
    [1] => from table
where a = 
    [2] => :variable
)

这里的想法是允许在正则表达式的第一部分&#34; ([\ w \ s *,=] +)&#34;仅限已接受的字符,因此不允许使用 / &#34; &#39; 字符。希望这会有所帮助。