【发布时间】:2015-06-12 10:28:11
【问题描述】:
我在 php 中使用 Preg_match_all 并编写了一个正则表达式,它可以正常工作
正则表达式:'/"([0-9A-z ]*)("|$)/'
要搜索的字符串是:
["100"]
["100","200"]
["100","200","300"]
预置数组
array (
0 =>
array (
0 => '"100"',
1 => '"200"',
2 => '"300"',
),
1 =>
array (
0 => '100',
1 => '200',
2 => '300',
),
2 =>
array (
0 => '"',
1 => '"',
2 => '"',
),
)
所以我从数组 1 获取数据
但现在我们也得到如下数据:
[100]
[100,200]
我想要这两种类型的单个正则表达式,但无法这样做。 我试着写了
/"([0-9A-z ]*)("|$)|[0-9]*/
但它并没有达到我的预期。 谁能帮我解决这个问题
还需要一件事:- 当我使用正则表达式时,让我们说数据就像:-
["",""]
我得到的数组:-
array (
0 =>
array (
0 => '""',
1 => '""',
),
1 =>
array (
0 => '',
1 => '',
),
2 =>
array (
0 => '"',
1 => '"',
),
)
所以我从这里取数组 1 ,所以变空了 但是我得到的所有正则表达式都给了我:-
array (
0 =>
array (
),
)
一个正则表达式可以给我以下所有条件吗?
【问题讨论】:
-
你为什么有
A-z?您是否打算也匹配“[] \ ^ _ `”?另一个问题:您的数据是否经过预过滤?是否需要检查[...]内部是否有值? -
我想我应该删除它。因为数据中只有数字。它没有经过预过滤,数据可以是这样的 [""] 或 []
-
你想达到什么目的?可能有比正则表达式更好的方法。
-
相反,您可以简单地使用 php 的
in_array函数而不是正则表达式 -
我认为 json_decode 做了我需要的所有事情。