正则表达式预查询不能哟个模糊匹配方式?

vbker 2009-10-11 02:03:18
$str = ‘你是234我是’;这种形式的字符串但是中间数字和前后的汉字个数都是不确定的。我想将前面的文字中间的数字和后面的文字分别提取出来,
提取第一部分汉字可以用
preg_match_all("/[\x80-\xff ]*(?=[0-9]+)/",$str,$str1);
提取数字可以用
preg_match_all("/[0-9]+(?=[\x80-\xff ]*)/",$str,$str2);
提取最后一部分我想用
preg_match_all("/(?<=[0-9]+)[\x80-\xff ]*/",$str,$str2);
却提示: Compilation failed: lookbehind assertion is not fixed length at offset 10 ,
是不是(?<=[0-9]+)这里面的匹配必须是固定的,这个问题怎么解决呢?
...全文
271 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
foolbirdflyfirst 2009-10-11
  • 打赏
  • 举报
回复
很遗憾,php不支持这样的
/(?<=这个地方必须是指定的固定串,而不能是正则式)[\x80-\xff ]+/
vbker 2009-10-11
  • 打赏
  • 举报
回复
莫非和环境还有关系?我测试了下,就提示上面的错误了。
阿_布 2009-10-11
  • 打赏
  • 举报
回复
呵呵!第三个我试了一下,可以取到后两个汉字啊!不过我测试的环境是java。
vbker 2009-10-11
  • 打赏
  • 举报
回复
嘿嘿,解决了。
preg_match_all("/[\x80-\xff ]+$/",$str,$str2);

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧