我有一个字符串:
<b>08-14-2018 09:24:09</b>,192.168.0.1,{"i":"2018-001370","ln":"FIRST","fn":"TEST","a":"570.00","d":"08\/14\/2018 09:23:00","ca":"550.00","ch":"20.00","chi":"s"},{"terapay_response":{"code":-106,"description":"Missing Check Amount Or Check Info"}}
我想匹配花括号外的所有逗号。
我想要的输出是:
[0] : <b>08-14-2018 09:24:09</b>
[1] : 192.168.0.1
[2] : {"i":"2018-001370","ln":"FIRST","fn":"TEST","a":"570.00","d":"08\/14\/2018 09:23:00","ca":"550.00","ch":"20.00","chi":"s"}
[3] : {"terapay_response":{"code":-106,"description":"Missing Check Amount Or Check Info"}}
我尝试了:
preg_match_all("/\((?:[^{}]|(?R))+\)|[^{},\s]+/", $line, $out);
但输出不同:
[0] : "<b>08-14-2018"
[1] : "09:24:09</b>"
[2] : "192.168.0.1"
[3] : ""i":"2018-001370""
[4] : ""ln":"FIRST""
[5] : ""fn":"TEST""
[6] : ""a":"570.00""
[7] : ""d":"08\/14\/2018"
[8] : "09:23:00""
[9] : ""ca":"550.00""
[10] : ""ch":"20.00""
[11] : ""chi":"s""
[12] : ""terapay_response":"
[13] : ""code":-106"
[14] : ""description":"Missing"
[15] : "Check"
[16] : "Amount"
[17] : "Or"
[18] : "Check"
[19] : "Info""
谢谢你。
你可以使用这个正则表达式:
/,(?![^{]*})/
它将找到一个不在{}
内的,
(基于此答案)以使用preg\u split分割字符串:
$str = '<b>08-14-2018 09:24:09</b>,192.168.0.1,{"i":"2018-001370","ln":"FIRST","fn":"TEST","a":"570.00","d":"08\/14\/2018 09:23:00","ca":"550.00","ch":"20.00","chi":"s"},{"terapay_response":{"code":-106,"description":"Missing Check Amount Or Check Info"}}';
print_r(preg_split('/,(?![^{]*})/', $str));
输出:
数组
(
[0] => 08-14-2018 09:24:09
[1] => 192.168.0.1
[2] => {"i":"2018-001370","ln":"FIRST","fn":"TEST","a":"570.00","d":"08\/14\/2018 09:23:00","ca":"550.00","ch":"20.00","chi":"s"}
[3] => {"terapay_response":{"code":-106,"description":"Missing Check Amount Or Check Info"}}
)
我试图匹配,使用正则表达式,所有逗号(后跟一个空格):在任何括号或方括号之外,即逗号不应该包含在括号或方括号中。 目标字符串是。在这种情况下,它应该匹配第一个逗号和最后一个逗号(介于和之间,和)。 所以我可以拆分分成,and,不会因此而使括号/括号不平衡。 为此,似乎很难单独使用正则表达式。有没有其他办法解决这个问题? 我使用的正则表达式: 但是这个表达式将匹配另外两个不应该匹配的逗号(第二个和第
我需要解析一个日志文件并获取时间和相关的函数调用字符串,该字符串存储在日志文件中,如下所示:{“time”:“2012-09-24t03:08:50”,“message”:“call()started”} 在其他字符串字符之间会有多个日志时间函数调用,因此我希望使用regex来遍历文件并获取所有这些 我想获取整个记录的信息,包括花括号 我不断得到非法重复错误,请帮助!谢了。
我有一个值,如下所示 如何编写一个正则表达式来捕获由逗号分隔的元素,而逗号不在双引号、方括号或花括号内?我想通过做下面的事情来匹配和获取元素;使用模式匹配。 元素应该是, 如果字符串如下所示 那么元素应该是
我需要在和之间匹配文本示例: 我需要匹配这个文本 简单正则表达式将正常工作,直到我在文本中放置一些 文本内的卷括号配对以匹配。 有没有可能通过正则表达式来解决这个问题?
我有一个字符串,我想用逗号爆炸,但前提是逗号没有嵌套在一些括号内。这是一个相当常见的用例,我一直在阅读这个论坛上的回复帖子,但没有真正找到我要找的东西。 所以,具体来说:重点是,我有一个字符串(=SQL SELECT…FROM语句),我想从列表中提取元素,用逗号分隔,用这个字符串编码(=要从中选择的列的名称)。但是,这些元素可以包含方括号,实际上是函数调用。例如,在SQL中,可以这样做 显然,我想
问题内容: 例如,如果括号/括号在以下情况中匹配: 依此类推,但如果括号/括号不匹配,则应返回false,例如: 等等。你能检查一下这个代码吗?提前致谢。 问题答案: 您的代码在处理’{‘和’}’字符时有些困惑。它应该与如何处理’(’和’)’完全平行。 这段代码经过您的稍微修改后,似乎可以正常使用: