热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在括号之间用花括号获取所有文本实例

如何解决《在括号之间用花括号获取所有文本实例》经验,为你挑选了1个好方法。

假设我有一些这样的文字:

{
    "source": "Analytics 13 {Employee_Info.acl} {Employee_Data}",
    "lastRecNo": "3",
    "columns": {
        "ID": "numeric",
        "NAME": "character",
        "EFFECTIVE_DATE": "date",
        "ROLE": "character"
    },
    "data": [{
        "ID": 1,
        "NAME": "Bill Smith",
        "EFFECTIVE_DATE": "2018-10-01",
        "ROLE": "Director {Regional},{Call Center}"
    },
    {
        "ID": 2,
        "NAME": "Ellen Jones",
        "EFFECTIVE_DATE": "2018-07-01",
        "ROLE": "Manager"
    },
    {
        "ID": 3,
        "NAME": "Sam Edwards",
        "EFFECTIVE_DATE": "2018-09-01",
        "ROLE": "Supervisor"
    }]
}

我希望RegEx匹配"data"数组中的每个对象(包括花括号).

所以第一场比赛将是:

{
    "ID": 1,
    "NAME": "Bill Smith",
    "EFFECTIVE_DATE": "2018-10-01",
    "ROLE": "Director {Regional},{Call Center}"
}

第二个是:

{
    "ID": 2,
    "NAME": "Ellen Jones",
    "EFFECTIVE_DATE": "2018-07-01",
    "ROLE": "Manager"
}

第三个是

{
    "ID": 3,
    "NAME": "Sam Edwards",
    "EFFECTIVE_DATE": "2018-09-01",
    "ROLE": "Supervisor"
}

我会在PowerShell中使用什么正则表达式模式?

请注意,第一个匹配实际上在"ROLE"字段的文本中有一些额外的花括号,这不应该干扰匹配.

到目前为止我已尝试过'(?<={).*?(?=})',但第一场比赛是:

"source": "Analytics 13 {Employee_Info.acl

此结果不是"数据"数组的一部分,并且它不包括匹配中的花括号.我知道我遗漏了一些东西,说"确保我们在括号/"数据"数组中,我可能没有考虑"数据"第一个对象中"ROLE"字段中的额外花括号我想忽略的数组.



1> Kirill Pashk..:

使用ConvertFrom-JsonConvertTo-Jsoncmdlet 可以轻松完成任务.

这是一个简短的例子:

首先,您将文本文件内容变为变量.

$JSON = @"
[
    {
    "source": "Analytics 13 {Employee_Info.acl} {Employee_Data}",
    "lastRecNo": "3",
    "columns": {
        "ID": "numeric",
        "NAME": "character",
        "EFFECTIVE_DATE": "date",
        "ROLE": "character"
    },
    "data": [{
        "ID": 1,
        "NAME": "Bill Smith",
        "EFFECTIVE_DATE": "2018-10-01",
        "ROLE": "Director {Regional},{Call Center}"
    },
    {
        "ID": 2,
        "NAME": "Ellen Jones",
        "EFFECTIVE_DATE": "2018-07-01",
        "ROLE": "Manager"
    },
    {
        "ID": 3,
        "NAME": "Sam Edwards",
        "EFFECTIVE_DATE": "2018-09-01",
        "ROLE": "Supervisor"
    }]
    }
]
"@

然后,您只需使用ConvertFrom-Jsoncmdlet 执行从JSON转换.

ConvertFrom-Json -InputObject $JSON

输出:

source                                           lastRecNo columns                                                            data                                                                                              
------                                           --------- -------                                                            ----                                                                                              
Analytics 13 {Employee_Info.acl} {Employee_Data} 3         @{ID=numeric; NAME=character; EFFECTIVE_DATE=date; ROLE=character} {@{ID=1; NAME=Bill Smith; EFFECTIVE_DATE=2018-10-01; ROLE=Director {Regional},{Call Center}}, @...

然后,您可以使用ConvertTo-Jsoncmdlet 将项目从DATA返回到JSON格式.全部一起.

$PSObject = ConvertFrom-Json -InputObject $JSON
foreach ($item in $PSObject.data){
    ConvertTo-Json $item
}

输出:

{
    "ID":  1,
    "NAME":  "Bill Smith",
    "EFFECTIVE_DATE":  "2018-10-01",
    "ROLE":  "Director {Regional},{Call Center}"
}
{
    "ID":  2,
    "NAME":  "Ellen Jones",
    "EFFECTIVE_DATE":  "2018-07-01",
    "ROLE":  "Manager"
}
{
    "ID":  3,
    "NAME":  "Sam Edwards",
    "EFFECTIVE_DATE":  "2018-09-01",
    "ROLE":  "Supervisor"
}

您现在可以添加filter conditionsDATA项目foreach loop.


推荐阅读
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • LeetCode笔记:剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)
    本文介绍了LeetCode剑指Offer 41题的解题思路和代码实现,主要涉及了Java中的优先队列和堆排序的知识点。优先队列是Queue接口的实现,可以对其中的元素进行排序,采用小顶堆的方式进行排序。本文还介绍了Java中queue的offer、poll、add、remove、element、peek等方法的区别和用法。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
author-avatar
天天写程序
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有