用于多个括号的 PHP 正则表达式

标签 php regex preg-match-all

我有一个如下所示的字符串:

43.3433443 25.3434334), (43.32424432 25.435345345, 43.21313123, 25.32432423423), (43.123123123 25.344234234, 43.1234123123 25.23213123))

我需要使用 preg_match_all 提取 ( 和 ) 以及 ( 和 )) 之间的所有内容

我有以下正则表达式,它适用于提取 ( 和 ) 之间的所有内容,但不提取 ( 和 )) 之间的所有内容

preg_match_all('/\), \(([A-Za-z0-9., ]+?)\)/', $data[$x], $inner);

我尝试过使用:

preg_match_all('/\), \(([A-Za-z0-9., ]+?)\)|\), \(([A-Za-z0-9., ]+?)\)\)/', $data[$x], $inner);

和:

preg_match_all('/(?=\), \(([A-Za-z0-9., ]+?)\))(?=\), \(([A-Za-z0-9., ]+?)\)\))/', $data[$x], $inner);

但它们都不起作用。我该如何将这两种情况都包括在内?

谢谢。

更新:

我忘了提及,该字符串包含我不想要的多个开始和结束括号内的数字,即两个括号 ---> (( 这里的数字 ))) <---3 个括号

最佳答案

使用以下正则表达式:

([^()]+?)\)

<强> Live demo

PHP 代码:

preg_match_all('/([^()]+?)\)/', $data[$x], $inner);

上次更新的正则表达式:

([^()]+?)\)(?![)]{2,})

Live demo

关于用于多个括号的 PHP 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21293193/

相关文章:

javascript - 优化: (\\[abc] | [^abc])*

javascript - 如何计算前导零?

php - 从 preg_match_all 迭代匹配

php - "~"字符在 PHP 正则表达式中表示什么?

php - MySQL 多表全文搜索

drupal - 如何为挂起的站点调试 nginx/php-fpm?

python - 如何在Python中使用正则表达式检测句子中的给定单词

php - 计数器无法记录计数次数

Php mysqli 适用于 sql 但不适用于存储过程

php - 解析文件中的内容