我正在尝试使用正则表达式解析 DSN(来自 Symfony 应用程序),以便与辅助应用程序链接,但使用相同的数据库。
我目前拥有的DSN是:
mysql:dbname=my_db_name;host=localhost
正则表达式为:
/^(\w+):(dbname=(\w+))?;?(host=(\w+))?/
(使用preg_match()
)。这匹配正常,但在我的测试环境中失败,因为 DSN 元素被切换,因此:
mysql:host=localhost;dbname=my_testdb_name
我可以切换它们,是的 :-) 但我确信可以使用单个正则表达式从两个 DSN 中提取主机和 dbname 部分,并且我希望能够同时增强我的知识时间;-) 有没有办法我可以做到这一点?