我的 CF 后端必须像读取 TEXT 文件一样读取 CFM 文件,以提取不同参数的名称和值,数据如下所示:
request.config.MY_PARAM_1 = 'ABCDEFGHI';
request.config.MY_PARAM_2 = "BlaBlaBla";
request.config.MY_PARAM_3 = TRUE;
request.config.MY_PARAM_4 = 'true';
request.config.MY_PARAM_5 = "1337";
request.config.MY_PARAM_6 = 1337;
如您所见,我可以有可以单引号或双引号的字符串。
我也有 BOOLEANS 和 NUMBERS,它们通常不带引号,但也可以有(单引号或双引号)。
我正在“解析”文件并提取值,我想找到一个返回匹配项的模式,如下所示:
请求配置。MY_PARAM_2 = " BlaBlaBla ";
我非常接近成功,但不幸的是,以下表达式无法摆脱结束引号。
<cfset match = REFind("^request\.config\.(\S+) = ['|""]?(.*)['|""]?;$", str, 1, "Yes")>
<cfset paramVal = Mid( str, match.pos[3], match.len[3] ) >
<cfdump var=#paramVal# >
例如,它返回BlaBlaBla"
,它已经成功省略了开头引号,但不是最后一个,我做错了什么?