mysql全角正则表达式_正则表达式问题,如何匹配全角空格?

你的位置:

问答吧

-> PHP基础

-> 问题详情

正则表达式问题,如何匹配全角空格?

如题,我写了一个要匹配回行两端所有连续半角和全角空格的正则表达式,如下:

~([\x20|\xa1a1]*)[\x0a|\x0d0a]+([\x20|\xa1a1]*)~i

但是不成功,总是将第一个空格前面的字符都匹配了进去,请各位帮我看看

作者: sanders_yao

发布时间: 2006-04-12

我顶第一次

作者: sanders_yao

发布时间: 2006-04-12

[[:space:]]

作者: changsheng7588

发布时间: 2006-04-12

多谢楼上的,但是遇到全角空格似乎还是不行

$Exp = "~([[:space:]]*)[\r\n|\n]+([\x[[:space:]]*)~i";

$content = preg_replace($Exp, "\r\n  ", $content);

echo $content;

?>

作者: sanders_yao

发布时间: 2006-04-12

不能放在[]里面

作者: 雨伞

发布时间: 2006-04-12

不好意思上面的没有完全改过来

但是改完了还是不行:

~[[:space:]]*(\r\n|\n)+[[:space:]]*~i

[[:space:]]照楼上版主所说的不加[]的话会报错:

Warning: preg_replace(): Compilation failed: POSIX named classes are supported only within a class at offset 0

作者: sanders_yao

发布时间: 2006-04-12

QUOTE:

原帖由 sanders_yao 于 2006-4-12 09:07 AM 发表

如题,我写了一个要匹配回行两端所有连续半角和全角空格的正则表达式,如下:

~(*)+(*)~i

但是不成功,总是将第一个空格前面的字符都匹配了进去,请各位帮我看看^[\xa1-\xa1\x20]*|[\xa1-\xa1\x20]*$

作者: yoryoue

发布时间: 2006-04-12

谢谢楼上的,但是也不行

我的意思不是匹配文本两端的空格

而是类似"   \n\n\r\n    "这样的,一般是出现在文本中间

作者: sanders_yao

发布时间: 2006-04-13

QUOTE:

原帖由 sanders_yao 于 2006-4-13 09:35 AM 发表

谢谢楼上的,但是也不行

我的意思不是匹配文本两端的空格

而是类似"   \n\n\r\n    "这样的,一般是出现在文本中间你的意思清除“每一行”字符串头尾的空格?不仅仅是整个字符串的头尾空格。是这个意思?

作者: yoryoue

发布时间: 2006-04-13

我的意思是将字符串中所有换行两侧的空格(包括全角空格)匹配

我是否应该换个思路,先将字符串按照换行拆开再按楼上所做的匹配个部分两端的空格?

一会儿试一下

作者: sanders_yao

发布时间: 2006-04-13

^[\xa1-\xa1\x20]*|[\xa1-\xa1\x20]*$m

作者: yoryoue

发布时间: 2006-04-13

再次感谢楼上的

这种方法可以而且为了适应\r\n的换行需要稍微改一下

^[\xa1-\xa1\x20]*|[\xa1-\xa1\x20]*\r*$m

作者: sanders_yao

发布时间: 2006-04-13


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部