首页 \ 问答 \ 如何使用PHP中的正则表达式在字符串中搜索可以按任何顺序排列的子字符串(How to search a string for substrings that can be in any order using regular expressions in PHP)

如何使用PHP中的正则表达式在字符串中搜索可以按任何顺序排列的子字符串(How to search a string for substrings that can be in any order using regular expressions in PHP)

我目前正在使用以下列格式输出JSON数据的Web服务:

{"ID":1291,"Name":"Houses of the Holy","Artist":"Led Zeppelin","Year":1973}

但是,从一个项目到下一个项目的顺序不一致。 例如:

{"ID":2958,"Label":"Reprise Records","Name":"Electric Ladyland","Year":1968}

当然,我不能编写依赖于统一顺序的属性的正则表达式,因为顺序因项目而异(尽管它们始终以ID开头)。

我会使用',''作为分隔符使用preg_split,但偶尔会有一个跟踪列表,如下所示:

{"ID":9237,"Tracklist":[{"Track1":"Taxman","Track2":"Eleanor Rigby"}]}

......这会弄乱它。

如何使用正则表达式搜索可能以任何顺序出现的子字符串,或者可能根本不显示? 或者我是否必须在Web服务返回的每个项目上运行多个正则表达式,每个项目对应一个可能的属性?


I'm currently working with a web service that is outputting JSON data in the following format:

{"ID":1291,"Name":"Houses of the Holy","Artist":"Led Zeppelin","Year":1973}

However, the order isn't consistent from one item to the next. For example:

{"ID":2958,"Label":"Reprise Records","Name":"Electric Ladyland","Year":1968}

Naturally I can't write a regular expression that depends on the attributes being in a uniform order, since the order varies from one item to the next (although they always start with ID).

I would use preg_split using ',"' as the delimiter, but there will occasionally be a tracklisting, like this:

{"ID":9237,"Tracklist":[{"Track1":"Taxman","Track2":"Eleanor Rigby"}]}

...which would mess it up.

How can I use a regular expression to search for substrings that may appear in any order, or perhaps not appear at all? Or will I have to run multiple regular expressions on each item the web services returns, one for each possible attribute?


原文:
更新时间:2022-01-12 07:01

最满意答案

JetBrains说,“不幸的是,没有鼠标就无法滚动控制台输出。” 我提交了一个增强请求,在Python控制台中添加键盘滚动


JetBrains says, "Unfortunately it's not possible to scroll console output without mouse." I filed an enhancement request to add keyboard scrolling in the Python console.

相关问答

更多

相关文章

更多

最新问答

更多
  • python的访问器方法有哪些
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。
  • 响应navi重叠h1和nav上的h1链接不起作用(Responsive navi overlaps h1 and navi links on h1 isn't working)
  • 在C中读取文件:“r”和“a +”标志的不同行为(Reading a File in C: different behavior for “r” and “a+” flags)
  • NFC提供什么样的带宽?(What Kind of Bandwidth does NFC Provide?)
  • 元素上的盒子阴影行为(box-shadow behaviour on elements)
  • Laravel检查是否存在记录(Laravel Checking If a Record Exists)
  • 设置base64图像的大小javascript - angularjs(set size of a base64 image javascript - angularjs)
  • 想学Linux 运维 深圳有哪个培训机构好一点
  • 为什么有时不需要在lambda中捕获一个常量变量?(Why is a const variable sometimes not required to be captured in a lambda?)
  • 在Framework 3.5中使用服务器标签<%=%>设置Visible属性(Set Visible property with server tag <%= %> in Framework 3.5)
  • AdoNetAppender中的log4net连接类型无效(log4net connection type invalid in AdoNetAppender)
  • 错误:发送后无法设置标题。(Error: Can't set headers after they are sent. authentication system)
  • 等待EC2实例重启(Wait for an EC2 instance to reboot)
  • 如何在红宝石中使用正则表达式?(How to do this in regex in ruby?)
  • 使用鼠标在OpenGL GLUT中绘制多边形(Draw a polygon in OpenGL GLUT with mouse)
  • 江民杀毒软件的KSysnon.sys模块是什么东西?
  • 处理器在传递到add_xpath()或add_value()时调用了什么顺序?(What order are processors called when passed into add_xpath() or add_value()?)
  • sp_updatestats是否导致SQL Server 2005中无法访问表?(Does sp_updatestats cause tables to be inaccessible in SQL Server 2005?)
  • 如何创建一个可以与持续运行的服务交互的CLI,类似于MySQL的shell?(How to create a CLI that can interact with a continuously running service, similar to MySQL's shell?)
  • AESGCM解密失败的MAC(AESGCM decryption failing with MAC)
  • SQL查询,其中字段不包含$ x(SQL Query Where Field DOES NOT Contain $x)
  • PerSession与PerCall(PerSession vs. PerCall)
  • C#:有两个构造函数的对象:如何限制哪些属性设置在一起?(C#: Object having two constructors: how to limit which properties are set together?)
  • 平衡一个精灵(Balancing a sprite)
  • n2cms Asp.net在“文件”菜单上给出错误(文件管理器)(n2cms Asp.net give error on Files menu (File Manager))
  • Zurb Foundation 4 - 嵌套网格对齐问题(Zurb Foundation 4 - Nested grid alignment issues)
  • 湖北京山哪里有修平板计算机的