字符串有:
TEST_DB_DATABASE
TEST_DB_DATABASE_USER
TEST_DB_DATABASE_PSD
TEST_DB_DATABASE_HOST
求正则将TEST_DB_DATABASE 提取出来,目前我写的是:'/TEST_DB_\w*(?=_)/';
匹配了除TEST_DB_DATABASE以外的所有,如何只匹配TEST_DB_DATABASE呢?
TEST_DB_DATABASE
TEST_DB_DATABASE_USER
TEST_DB_DATABASE_PSD
TEST_DB_DATABASE_HOST
求正则将TEST_DB_DATABASE 提取出来,目前我写的是:'/TEST_DB_\w*(?=_)/';
匹配了除TEST_DB_DATABASE以外的所有,如何只匹配TEST_DB_DATABASE呢?
解决方案 »
- 菜鸟初级问题:PHP调用javascript自定义的方法
- 无法获取select option的值
- 如何把DOMNode转换问题,弄了三天了,急~~
- 求一正则表达式问题.
- 我做的网页上传后字体都变大了 我该怎么办?请高手帮我解决谢谢了!!!!!
- intput 的问题
- 哪里有下载好一点的免费php+mysql的论坛?
- php下拉菜单问题
- php+mysql的空间里的好?我想买一个!
- 怎样用php写发送email带html的email,谢谢!
- PHP:insert t values(1,'一段html');这样执行不了,如果insert的内容只是普通文本的话就没问题?
- php数组差集问题,高级篇,有经验的指点啊?!~!
echo $arr[0]
误解我的意思了,字符串里还有其它例如: TEST_DB_INFO
TEST_DB_INFO_USER
TEST_DB_INFO_PSD
TEST_DB_INFO_HOST
要把TEST_DB_DATABASE 和 TEST_DB_INFO 都提取出来
/TEST_DB_[A-Z]*/
preg_match_all('/TEST_DB_[^_]+\b/mU',$str,$arr);
print_r( $arr[0]);Array
(
[0] => TEST_DB_DATABASE
[1] => TEST_DB_INFO
)
应该说:TEST_DB_后面跟不含有 _ 的字母。。
如楼上的据说,\w是包含 _ 的。[a-zA-Z]+就行了。
TEST_DB_DATABASE
TEST_DB_DATABASE_USER
TEST_DB_DATABASE_PSD
TEST_DB_DATABASE_HOST
TEST_DB_INFO
TEST_DB_INFO_USER
TEST_DB_INFO_PSD
TEST_DB_INFO_HOST...string;
$pattern = '/TEST_DB_[A-Z]++(?!_)/';
preg_match_all($pattern, $str, $matches);
print_r($matches[0]);