sách gpt4 ai đã đi

php - 正则表达式取值在括号 "()"之间?

In lại 作者:塔克拉玛干 更新时间:2023-11-03 05:38:07 28 4
mua khóa gpt4 Nike

我很不会写正则表达式。

我正在尝试获取括号“()”之间的值。像下面这样的东西......

$a = "POLYGON((1 1,2 2,3 3,1 1))";
preg_match_all("/\((.*)\)/U", $a, $pat_array);
print_r($pat_array);

但这会给我一些元素,比如...

Array
(
[0] => Array
(
[0] => ((1 1,2 2,3 3,1 1)
)

[1] => Array
(
[0] => (1 1,2 2,3 3,1 1
)
)

但我想获取“1 1,2 2,3 3,1 1”作为输出。

我知道我们可以在得到这个输出后修剪括号。但是,如果使用正则表达式完成,那就太好了。

Cảm ơn trước.


Giải pháp:theo @anubhava回答:

sử dụng@anubhava的正则表达式。

Ví dụ:

$a = "POLYGON((1 1,2 2,3 3,1 1),(1 1,2 2,3 3,1 1),(1 1,2 2,3 3,1 1))";

如果打印这个正则表达式的结果,你会得到这样的...

Array
(
[0] => Array
(
[0] => ((1 1,2 2,3 3,1 1)
[1] => (1 1,2 2,3 3,1 1)
[2] => (1 1,2 2,3 3,1 1))
)

[1] => Array
(
[0] => 1 1,2 2,3 3,1 1
[1] => 1 1,2 2,3 3,1 1
[2] => 1 1,2 2,3 3,1 1
)
)

看看第二个数组元素,它正是我们想要的。

仅供引用:我用它从 MySQL 数据库中获取 POLYGON 的 GEOMETRY 数据,然后我用数组处理它以获得所有多边形节点的所有纬度和经度。

1 Câu trả lời

使用基于否定的正则表达式模式并从捕获的第 1 组中获取结果:

preg_match_all('/\(+([^()]*)\)+/', $a, $pat_array);
print_r($pat_array[1]);

[^()]* 将匹配任何不是 ( hoặc ) 的字符。

Đầu ra:

Array
(
[0] => 1 1,2 2,3 3,1 1
)

关于php - 正则表达式取值在括号 "()"之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32863322/

28 4 0
Bài viết được đề xuất: php - 获取 Microsoft 10 Edge 浏览器 Mime 类型 php
Bài viết được đề xuất: sql - 计算SQL中两个字符串之间相似词的个数
Bài viết được đề xuất: java - 求 a^b 余数的函数,其中 a、b 是正整数
Bài viết được đề xuất: PHP:带有特殊字符的 chr 函数问题
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com