- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我遇到了一个问题,表面上看起来很简单,但我的正则表达式技能却很薄弱。我有一个字符串,我需要将其转换为一个数组,然后相应地处理这些值,这很简单,但是字符串的格式无法更改(它是在其他地方生成的)并且它的逻辑让我感到困惑。
字符串是:
[6] [2] [3] 12.00; [5] [4]
它基本上是一组 id 和十进制值(在本例中为 id 3 == 12.00)。 id 的数量可能随时变化,小数值可以在任何或所有 id 中。
在理想情况下,我会有以下数组:
Array (
[0] => Array (
[id] => 6
[num] =>
)
[1] => Array (
[id] => 2
[num] =>
)
[2] => Array (
[id] => 3
[num] => 12.00
)
Etc...
你们中的任何一个正则表达式向导都知道如何用比我更少的咒骂来实现这一点吗?
到目前为止,我已经能够使用以下方法提取 id:
preg_match_all('@\[(.*?)\]@s', $string, $array);
小数点使用:
preg_match_all('/([0-9]+[,\.]{1}[0-9]{2})/', $string, $array);
但失去了 id 和值之间的相关性。
最佳答案
示例:
<?php
$string = '[6] [2] [3] 12.00; [5] [4]';
preg_match_all('/\[(?P<id>\d+)\](?: (?P<num>[\d\.]+);)?/', $string, $matches, PREG_SET_ORDER);
var_dump($matches);
输出:
array(5) {
[0]=>
array(3) {
[0]=>
string(3) "[6]"
["id"]=>
string(1) "6"
[1]=>
string(1) "6"
}
[1]=>
array(3) {
[0]=>
string(3) "[2]"
["id"]=>
string(1) "2"
[1]=>
string(1) "2"
}
[2]=>
array(5) {
[0]=>
string(10) "[3] 12.00;"
["id"]=>
string(1) "3"
[1]=>
string(1) "3"
["num"]=>
string(5) "12.00"
[2]=>
string(5) "12.00"
}
[3]=>
array(3) {
[0]=>
string(3) "[5]"
["id"]=>
string(1) "5"
[1]=>
string(1) "5"
}
[4]=>
array(3) {
[0]=>
string(3) "[4]"
["id"]=>
string(1) "4"
[1]=>
string(1) "4"
}
}
关于php - 如何使用正则表达式将字符串拆分为二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140294/
我有一个数组列表: ArrayList allText = new ArrayList(); 其内容是这样的: [Alabama - Montgomery, Alaska - Juneau, Ariz
我有一个 timestamp 格式的开始和结束时间。我想将它们分成多个时间段,例如 1 小时。 $t1 = strtotime('2010-05-06 12:00:00'); $t2 = strtot
我需要将 span10 分成 3 列,但我无法将它们排列起来。我应该在 span10 中添加一个 span12 还是使用 offset 还是??
我有一个时间序列。我想从早上 8 点到第二天早上 7:59 分成 24 小时的区 block 。我知道如何按日期分组,但我尝试过使用 TimeGroupers 和 DateOffsets 处理这个 8
我收到“街道号码邮政编码城市”形式的地址(作为字符串)。我想要做的是将街道和号码与邮政编码和城市分开。通常你可以按空格分割。但有些街道名称中也有空格,例如:“Emile Van Ermengemlaa
我有一个用户列表。其中一些用户处于第一状态,而其他用户处于第二状态。所以我想要的是将这个列表显示为首先,它按排序顺序显示存在 = 1 的用户,然后按排序顺序显示存在 = 2 的用户。这里的排序是根据用
我感觉我搜索了整个网络,但找不到一种方法将不同高度的 div 很好地划分为 3 列,就像 http://www.ing.nl 上那样 headertekst headerteksttesth
Bootstrap 3 按钮下拉菜单出现问题。你可以在这里看到我的两个例子: http://www.bootply.com/W1dLusilMk http://www.bootply.com/GGBv
我在 php 中执行以下操作 foreach($QuestionAsekd as $k => $v){ $grp_name = $v['NAME']; $groupValues[$gr
我找到了一种用pandas解析html的绝妙方法。我的数据格式有点奇怪(见下文)。我想将这些数据拆分为 2 个单独的数据帧。 注意每个单元格如何由,分隔...是否有任何真正有效的方法来分割所有这些单元
HTML 看起来像这样,但我不允许对其进行更改。我只能编写 CSS 将其变成 2 列。 Povezave www.behance.net www.kiberpipa.org www.o
假设我有以下数据框“A” utilization utilization_billable service 1
我需要将 2 个文本框拉伸(stretch)到 100% 的浏览器宽度,以及一个提交按钮。所有三个都应该在一行中,我试图拉伸(stretch)它但它没有发生......有什么想法吗? 代码: .sea
我是一名优秀的程序员,十分优秀!