我遇到了很多问题,为我的问题创造了完美的正则表达式。希望有人在这里可以帮助我。 我正在尝试在SQL查询中找到所有变量。
举个例子:
select *, 'string with :port in the text'
from table
where a = :variable
// and this is commented out :oldvariable
我们曾使用r':(\w+)'
查找变量,以查找:
后面的所有字词。
不过,我想过滤掉//
背后的行以及""
或''
正则表达式的首选输出应为:variable
。
:port
& :oldvariable
不应该在那里。
我可以每行执行正则表达式,这样可能有助于解决方案。
答案 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; 字符。希望这会有所帮助。