ColdFusion 从文本文件中提取值

2024-02-06

技术细节

我想从包含参数名称和值的文本文件中提取值。对于以“request.config”开头的每一行。 (有空行、带注释的行等,我不想从中提取任何内容)我想提取这些值(以粗体显示):

请求.配置。我的参数1 = “一些随机字符串”;

我认为最好的方法可能是使用 REGEX,但我该怎么做呢?

我以为会有类似正则表达式的东西可以提取 2 个值request.config.${1} = ${2};并为每一行检索 ${1} 和 ${2},但前提是它们匹配。

我尝试尝试但没有成功:

<cfset str = "request.config.MY_PARAM_NAME = 'The parameter VALUE!!';">
<cfset arrSearch = rematch("^request.config.(.*?) = (.*?);$", str) >
<cfdump var="#arrSearch#" label="Extracted values">

不幸的是,这段代码给了我已经拥有的完整字符串,我只想要 2 个提取的值!

一些元:我正在尝试做什么

我正在构建一个 Web 应用程序,允许最终用户修改存储在 params_file.cfm 中的一些应用程序参数。我们希望能够在应用程序内完成此操作,而不是让开发人员在文件中手动更改变量。

我的应用程序首先对后端进行 AJAX 调用,后端读取 params 文件,获取所有数据对(param_name、param_value 以及稍后可能的 param_description),并将它们作为 JSON 返回以填充我的列表,我有一个自动完成工具来填充我的列表按名称搜索它们(好奇的可以使用 Typeahead.js)。当我选择参数名称时,该值会与一些用于修改它们的控件一起出现(这些控件取决于数据类型,JQuery 用于确定类型)。

问题是 param_value 可以采取多种形式..因为这个 params 文件是由不同的人维护的,所以它可以有不同的语法。例如,布尔值可以存储为“TRUE”、“true”、TRUE、true(您明白了)。

由于 SerializeJSON 处理类型(布尔值、数字、字符串),我认为我的 REGEX 应该返回不带引号(单引号或双引号)的文本,但我在制作该表达式时遇到了麻烦。

I got

<cfset match = REFind("^request\.config\.(\S+) = ['|""]?(.*)['|""]?;$", str, 1, "Yes")>

我测试了它request.config.my_param_1 = 'MYTEST123'; and it 仅删除第一个单引号,由于某种原因,表达式返回我MYTEST123'当我不需要任何周围的报价时。我的正则表达式需要帮助


你不想要REMatch, 你要REFind (docs https://wikidocs.adobe.com/wiki/display/coldfusionen/REFind):

REFind(reg_expression, string [, start, returnsubexpressions ] )

returnsubexpressions是你所需要的,所以...

<cfset str = "request.config.MY_PARAM_NAME = 'The parameter VALUE!!';">
<cfset match = REFind("^request\.config\.(\S+) = (.*);", str, 1, "Yes")>

<cfdump var="#match#">

match将是一个具有两个键的结构(POS and LEN),列出每个子匹配的位置和长度。

然后您可以将此信息提供给Mid()并剪掉实际的子字符串。

不要忘记检查是否REFind成功了,ArrayLen(match.POS)在你的情况下必须是 3(1 场整体比赛,两个比赛组,想想$0 .. $2).

要查找整个文件中的所有出现情况,可以

  • 循环运行该函数,设置start to match.POS[1] + match.LEN[1]对于下一次迭代
  • 或以逐行方式循环文件,通过<cfloop list>带换行符Chr(10)作为分隔符或通过<cfloop array> and ArrayToList(file, Chr(10)).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ColdFusion 从文本文件中提取值 的相关文章

随机推荐

  • 为什么我的 Google OAuth URL 在返回的 URL 中放置了哈希值?

    给定的网址 返回网址 如果返回 URL 完全有效 更改为 开始查询字符串 为什么谷歌要归还 因此 杀死查询字符串 单独说明 另外 我不太知道我是否应该提出要求token or code作为响应类型 我计划让用户将他们的 Google 云端硬
  • 为什么 selectOneMenu 将 ItemLabel 发送到转换器?

    我的 JSF 页面
  • 为什么我在尝试打印时收到 AttributeError

    我正在按照本教程学习 urllib2http docs python org howto urllib2 html urlerror http docs python org howto urllib2 html urlerror运行下面的
  • 使用 Swift Package Manager 时如何生成用于开发的 Xcode 项目文件

    我正在使用新的开源 Swift Package Manager 并且能够下载文件 我希望管理器根据它检索到的包创建一个 开发环境 通过 Xcode 有人处理过这个吗 更新 正如其他答案中提到的 您现在可以使用以下命令生成 Xcode 项目文
  • 获取 Chrome 扩展程序读取复制文本的权限

    我正在创建一个 Chrome 扩展程序 我希望能够看到用户从 Chrome 复制到剪贴板的内容 这是我目前在内容脚本中所做的工作 document addEventListener copy gt navigator clipboard r
  • 从 groupby 函数中选择组

    我的数据框 df1 group ordercode quantity 0 A 1 B 3 1 C 1 E 2 D 1 我通过以下方式组建了每个小组groupby功能 我需要使用组号提取数据 我想要的输出 在 获取组0 出去 ordercod
  • 将会员资格提供程序和 dbcontext 包装在单个事务上

    使用 EF 5 代码优先和 NET 4 5 的 MVC 项目 我一直在寻找一种将 dbContext 和 SimpleMembershipProvider 包装在单个事务上的方法 我尝试使用 TransactionScope 但由于会员资格
  • 将change、mouseup、mousedown、mouseout、keyup和keydown合并为一个函数

    我拥有的 我有一个文本框 它假定在相应的选择框中选择的任何选项的值 我对 on Change mouseup mousedown mouseout keyup 和 keydown 事件重复完全相同的函数 我需要的 是否可以将上述功能合并为一
  • Java - 动态更改日志记录级别

    我希望能够告诉 JVM 在执行链中的某个时刻停止记录特定级别的消息 在某些时候 我只想记录消息SEVERE水平 所以我正在考虑这样做 for Enumeration
  • 显示高度 100%:IE 中的表格单元格

    我希望在 div 下有一个带有 display table cell 的子元素 占据父 div 的整个高度 有谁知道为什么下面的代码片段在 Chrome 和 FF 中工作得很好 但在 IE 包括 10 下却崩溃了 HTML div clas
  • (数字)和(-数字)的含义

    是什么意思 number number 我已经搜索过但无法找到其含义 我想用i i 在 for 循环中 如 for i 0 i lt n i i i 假设 2 的补码 或者i未签名 i等于 i 1 i i 1 是提取最低设置位的技巧i 它之
  • qPython - kdb响应数据的类型转换

    当我使用 qPython 运行 q 查询时 我能够返回 pandas 数据框中的数据 我正在努力解决的是 字符串 列的类型 即在 q 中以简单或混合 字符 列表形式呈现的列 它们的数据类型是 object 值以 b ab34knadke 的
  • 发现蓝牙设备IOError:RPC服务器不可用

    我只是尝试在 PyCharm 中使用 Python 实现蓝牙PyBluez http karulis github io pybluez 我陷入了这个特殊的错误 我试图搜索这个错误 但找不到它 有人可以帮忙吗 这是我的代码 gt gt gt
  • 使用 Facebook (PHP SDK) 和 Codeigniter 进行身份验证

    好吧 这几天我一直在尝试将 Facebook 身份验证集成到我基于 Codeigniter 的网站中 我已将 Facebook PHP SDK 作为一个库包含在内 并且似乎连接得很好 但是当我在 SDK 中使用 getUser 方法时 会返
  • 如何拥有一个显示不同uitableview建议的搜索栏

    我想在导航栏上有一个搜索栏 当用户开始输入时 显示一些建议 但另外 uitableview 必须与搜索结果不同 例如 用户开始输入 wh 然后显示一个包含white wheater who 的列表 然后 当按下搜索按钮时 会显示其他列表和结
  • Safari 浏览器的媒体查询

    我希望媒体仅在 1280 像素屏幕的 Safari 上运行 这适用于所有浏览器 但我只想要 safari media screen and width 1280px Try this Webkit Chrome 和 Safari 任何版本
  • Android 人脸检测仅适用于绘图,不适用于 SD 卡中的图像

    所以我有代码可以在任何给定的图像文件中检测最多 10 张面孔 并向我返回信息 例如眼睛的位置和其他类似信息 因此 当我告诉它使用存储在我的项目资源的可绘制文件夹中的图像文件时 它效果很好 但是当我尝试从 SD 卡导入的位图中查找面孔时 它不
  • 高分自包含在 .xap 中

    想知道这是否可能 我正在为一个有趣的办公项目制作一个小游戏 并且需要有一个高分表 该表独立于实际的 Silverligth xap 中 有办法做到这一点吗 不 不是 您可以将表存储为数据 即在 XML 文件中 但您无法修改该文件并在 XAP
  • 无法一次选择一个单选按钮

    我无法一次选择一个单选按钮 多个按钮被选中 我是 html 新手 这是我的代码 请帮忙
  • ColdFusion 从文本文件中提取值

    技术细节 我想从包含参数名称和值的文本文件中提取值 对于以 request config 开头的每一行 有空行 带注释的行等 我不想从中提取任何内容 我想提取这些值 以粗体显示 请求 配置 我的参数1 一些随机字符串 我认为最好的方法可能是