正则匹配,砖家帮帮忙啊

好为 发布于 2013/12/24 21:19
阅读 319
收藏 0
<?php

$str = 'uid1, "uid", name1, "name", 123456, "123456", "1L", \'font\'';

$int = preg_match_all('/^([\"|\']\w+\s*[\"|\'])$/', $str, $match);

echo '<pre />';
var_dump($int);
var_dump($match);


我想匹配出 没有引号的字符串(\w+), 我快崩溃了 ^ 符号不会用

我想最后匹配出结果是  uid1 , name1


感谢大家! 最终规则出来了: $pattern = '/[A-Za-z_]+\d*(?=,|$)/'; 

加载中
1
SunnyKui
SunnyKui
<?php
$str = 'uid1, "uid", name1, "name", 123456, "123456", "1L", \'font\'';

$int = preg_match_all('#[a-z\d]+(?=,)#i', $str, $match);

echo '<pre />';
print_r($match);



好为
好为
为什么 123456 也匹配出来了
1
MrZQ
MrZQ
<?php
$str = 'uid1, "uid", name1, "name", 123456, "123456", "1L", \'font\'';

$int = preg_match_all('#[a-zA-z]+\w+(?=,)#i', $str, $match);

echo '<pre />';
print_r($match);



freesnow
freesnow
回复 @好为 : 也就是说,你想要奇数位的不带引号的字符串。。
MrZQ
MrZQ
回复 @好为 : 处理的时候在$str添加一个,(逗号)吧
好为
好为
如果再追加就匹配不出来了, 如 \'font\', font
1
Jackin
Jackin
#([a-z]+\d+)#i
1
freesnow
freesnow

#[a-z][a-z0-9]+(?=,|$)#i

freesnow
freesnow
回复 @好为 : (?=,|$)是说后面是,或者字符串结束
好为
好为
谢谢! (?=,) 是什么意思啊
0
NickWilde
NickWilde
\w+1看看可以不……
NickWilde
NickWilde
回复 @好为 : $int = preg_match_all('/\w+1/', $str, $match); 当然如果你想匹配任意字母+数字的形式的话就\w+\d+
好为
好为
没明白你说的是什么意思
0
SSmail
SSmail
\s*[^"'][a-z|A-Z]+\w+,
0
Tuesday
Tuesday

目测楼主一群人都忘记了正则的特性了.

正则也可以自定义函数的呀...

返回顶部
顶部