正则表达式获取以冒号分隔的键值对中的文本

2023-12-10

我这里有我的正则表达式示例:https://regex101.com/r/kE9mZ7/1

对于以下字符串:

key_1:一些文本,可能是逗号,以分号结尾; key_2:可能没有结束分号的文本,但也可以是

我想做如下的事情:

var regEx_attrVal = /[\w :].*?(?=;|$)/g;
var results = attrs.match(regEx_attrVal);
      for(i=0;i<results.length;++i) {
        var split = results[i].split(':');

        preColon = split[0].trim();
        postColon = split[1].trim();

        //log preColon and postColon to console

      }

最终结果应该是这样的:

//results[0]
preColon: key_1
postColon: some text, maybe a comma, ending in a semicolon

//results[1]
preColon: key_2
postColon: text with possibly no ending semicolon, but could be

我的正则表达式肯定是错误的,希望SO社区能够提供帮助!

Thanks!


这是提取这些值的正则表达式方法:

/(\w+):\s*([^;]*)/gi

或(因为标识符应以_或一封信):

/([_a-z]\w*):\s*([^;]*)/gi

这里有一个正则表达式演示

var re = /([_a-z]\w*):\s*([^;]*)/gi; 
var str = 'key_1: some text, maybe a comma, ending in a semicolon; key_2: text with no ending semicolon';
while ((m = re.exec(str)) !== null) {
    document.body.innerHTML += m[1] + ": " + m[2] + "<br/>";
}

图案细节:

  • ([_a-z]\w*)- 第 1 组匹配以以下开头的标识符_或一个字母,后跟 0+ 个字母数字/下划线符号
  • :- 一个冒号
  • \s*- 0+ 空格
  • ([^;]*)- 0+ 个字符以外的字符;。使用一个否定字符类消除了使用惰性点匹配的需要(?:$|;)其后分组。NOTE that *量词使值成为可选的。如果需要,请使用+.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式获取以冒号分隔的键值对中的文本 的相关文章

随机推荐

  • 如何循环遍历文件中的行块?

    我有一个如下所示的文本文件 其中的行块由空行分隔 ID 1 Name X FamilyN Y Age 20 ID 2 Name H FamilyN F Age 23 ID 3 Name S FamilyN Y Age 13 ID 4 Nam
  • 获取鼠标光标下的 RGB 值

    我正在尝试构建一个程序来检测鼠标光标下方的颜色 然后在屏幕上的窗口中显示颜色和 RGB 值 我对 Java 非常陌生 所以什么都不知道 在朋友的帮助下 我编写了两个代码 第一个获取缓冲图像的特定坐标的 RGB 值 另一个获取用户定义的 RG
  • jQuery animate 在小提琴中工作但在线不流畅

    我制作了一种带有三个扩展 div 的手风琴 a b c 在小提琴中 但是当我将其保存在本地并在浏览 器中打开它时 过渡不再平滑 点击后我特别注意到 b with a扩大了 我已包含引用 CSS 和 JavaScript 代码的 HTML 原
  • 了解 Powershell:示例 - 将 JSON 转换为 CSV

    我读过几篇文章 比如使用 PowerShell 将 JSON 转换为 CSV 关于使用 PowerShell 转换 CSV 我还了解到 在脚本中使用管道语法是一种相对较差的形式 它实际上是用于命令行的 并且随着时间的推移会给开发人员带来维护
  • 如何在MongoDB中设置缓冲区偏移范围,它不允许在BSON对象中上传超过16MB的文件?

    我的流程和代码 从表单数据上传图像并将图像的 BSON 字符串存储到数据库 以下是步骤和代码 从 multer upload 上传文件 从文件系统读取文件 fs 将图像内容字符串转换为base64字符串 将base64字符串转换为BSON字
  • 在 R 中使用线性回归填充 NA

    我有一个包含一个时间列和 2 个变量的数据 下面的示例 df lt structure list time c 15 16 17 18 19 20 21 22 23 24 25 26 var1 c 20 4 31 5 NA 53 7 64
  • LPARAM 和 WPARAM 的定义是什么?

    我知道我在这里很懒 我应该自己查找头文件 但是 LPARAM 和 WPARAM 参数的实际类型是什么 它们是指针还是四字节整数 我正在编写一些 C 互操作代码 并希望确保它可以在 x64 系统上运行 LPARAM是一个类型定义LONG PT
  • 使用 py2exe 打包 py 文件时出现“超出最大递归深度”

    几个月前 py2exe 在同一个 py 文件上运行得很好 但是当我今天再次尝试时 它失败了 报告了 运行时错误 超出了最大递归深度 结果我得到了一个空的 dist 文件夹 Py文件工作正常 只是无法打包 我猜py文件中导入的模块有问题 但我
  • WPF VS2013:查找资源字典时发生错误

    Team 我在 Visual Studio 2013 中有一个简单的 wpf 项目 结构如下所示 该错误所说的全部内容如标题 查找资源字典时发生错误 所示 我尝试了网上的很多建议 但已经失去耐心了 一切似乎都还好 任何对此有经验的人都可以提
  • v-for Loop 内的参考文献 vue v3.2.25 或更高版本

    我正在读vue 3 的文档我决定测试一下refs在我当地的开发环境中 我用的是vue版本3 2 31并根据设置我的项目vue官方指南 因此 为了测试组件中的 refs 我只需将代码复制并粘贴到this url那就是操场vue 网站 这意味着
  • 在 bash 中获取位置参数

    我有一个名为 foo 的 bash 脚本 其参数数量可变 第一个是必需的 即 foo a1 b2 b3 b4 我知道在 bash 中 1 会得到参数 a1 但是有没有办法得到所有其余的参数 或 似乎让我得到了所有参数 包括 a1 切片 ar
  • 通过嵌套连接选择最高的序列号

    我想为每个客户 ID 获取最大序列号 最大序列号将根据最高银行帐户余额计算 该表有100000条记录 Tables 客户端序列表 T1 ClID SeqId 1 11 1 12 1 13 1 14 1 15 2 16 2 17 2 18 2
  • C# 拖放问题

    我有一个 C NET 3 5 应用程序 允许从树中拖动项目并将它们作为文件拖放到文件夹中 这是我的代码 String absolutePathToFile get absolute path DataObject dataObject ne
  • 在我的 Ember.js 应用程序中的 localStorage.clear() 或 deleteRecord() 之后,本地存储数据被复活

    我观察到数据复活后localStorage clear or deleteRecord jsbin 示例 在我的 ember 应用程序中被调用 请按照以下步骤复制问题 打开 chrome web dev gt 资源 gt 本地存储 gt h
  • 根据单元格值脚本将行移动到另一个工作表

    希望使用脚本根据谷歌表格中的值移动单元格 在观看了一些有关基础知识的视频并使用网站上找到的代码之后 尝试使这适用于我的电子表格 这对所有这些都是超级绿色的 function doneCopy var app SpreadsheetApp v
  • Python 请求重定向登录

    这是一个网站http pro wialon com 我想使用 python requests 模块登录 登录和通过是演示 import requests with requests Session as c url http pro wia
  • 如何在 webview 中从我的资源加载图片?

    我想加载 WebView 中可绘制资源中设置的名为 map png 的图片 我在另一个答案中发现了这个建议 webview loadUrl file 但我不明白如何正确设置它 我总是收到错误消息 提示找不到所请求的文件 这是我写的 publ
  • 如何在CreateProcess实例化的命令中使用或扩展环境变量?

    下面的代码利用CreateProcess使用环境变量运行命令 在这里 它尝试运行notepad APPDATA test txt 如果我跑notepad APPDATA test txt直接在Windows CMD APPDATA 将被扩展
  • bash 中的命令替换与函数调用

    我正在从一本书中编写一个 shell 脚本 有一个示例 我正在创建一个函数并稍后调用该函数 function name 但据我所知 我可以通过编写函数名称来调用函数 那么 用函数名调用函数和用函数调用有什么区别 function name
  • 正则表达式获取以冒号分隔的键值对中的文本

    我这里有我的正则表达式示例 https regex101 com r kE9mZ7 1 对于以下字符串 key 1 一些文本 可能是逗号 以分号结尾 key 2 可能没有结束分号的文本 但也可以是 我想做如下的事情 var regEx at