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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值