正则表达式匹配,而忽略Searchword中的字符

时间:2019-07-10 13:00:49

标签: regex

我正在使用一个工程程序,该程序可以让我对公式进行编码,以便过滤出数据库中的特定行。我试图在数据库中查找包含例如“具体”作为属性。

在代码中,我可以使用正则表达式。

到目前为止,我使用的正则表达式如下:

".*(concrete).*";

因此,如果数据库中的行包含具体内容,我将获得所需的结果。 现在的问题是:我想用一个变量切换单词concrete,这样它看起来像这样:

".*(@VARIABLE1).*";

(带有@的语法在程序btw中起作用。) 问题是:如果我将变量设置为具体变量,则程序会自动将其切换为'concrete'。显然,无法再找到具体的词,因为搜索词现在在开头和结尾都包含两个'符号。

是否可以使用Right regex忽略这两个字符?

我要执行的操作如下: 如果数据库中的一行包含“ 25cm混凝土为灰色” 我应该从正则表达式中找到一个匹配项。 搜索字词".*(concrete).*";起作用,变量".*(@VARIABLE1).*";无效。

编辑:

程序中的整个“公式”如下所示:

if(Match(QTO(Typ:="Attribut{FloorsLayer_02_MaterialName}");".*(@V_QUALITY).*" ;"regex") ;QTO(Typ:="Attribut{Fläche}");0)

当内部匹配为true时,我希望if条件为true。 整个QTO函数仅仅是将某个属性使用到Match函数中的程序语法,中间部分是我的问题。我真的不知道编程语言或任何东西,我是新来的。希望对您有帮助!

1 个答案:

答案 0 :(得分:0)

那不是真正的解决方案,更多的是hack,而且我不确定它是否有效:

如果使用正则表达式

.*(@VARIABLE1)?).*

和字符串?concrete(

这将导致如下所示的正则表达式:

.*('?concrete(')?).*

这使得其他字符是可选的。


这使用以下假设:

字符串(@VARIABLE1)('<content of VARIABLE1>')取代