我正在使用一个工程程序,该程序可以让我对公式进行编码,以便过滤出数据库中的特定行。我试图在数据库中查找包含例如“具体”作为属性。
在代码中,我可以使用正则表达式。
到目前为止,我使用的正则表达式如下:
".*(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函数中的程序语法,中间部分是我的问题。我真的不知道编程语言或任何东西,我是新来的。希望对您有帮助!
答案 0 :(得分:0)
那不是真正的解决方案,更多的是hack,而且我不确定它是否有效:
如果使用正则表达式
.*(@VARIABLE1)?).*
和字符串?concrete(
这将导致如下所示的正则表达式:
.*('?concrete(')?).*
这使得其他字符是可选的。
这使用以下假设:
字符串(@VARIABLE1)
被('<content of VARIABLE1>')
取代