php正则表达怎么把一个字符串中的所有空格都转化为下划线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php正则表达怎么把一个字符串中的所有空格都转化为下划线相关的知识,希望对你有一定的参考价值。

使用正则表达式进行替换的函数是preg_replace,此函数使用的一般格式是:
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

典型的使用情况是带三个参数,第一个为正则表达式表示的查找内容,第二个参数为替换后的内容,对三个参数是字符串。

你的问题把所有空格转换为下划线,写出这个语句有几个细节,如果是只替换空格(不包含制表、回车等其它空白),而且一个空格替换为一个下划线、两个空格替换为两个下划线,那么语句如下(假设字符串变量是$str):
$str=preg_replace(\'/ /\',\'_\',$str);
上面语句中的\'/ /\'为正则表达式,/为定界符(可以用其它),中间的一个空格表示查找的内容就是一个空格。

如果多个空格替换为一个_,那么需要在空格后面使用一个+,表示匹配1个或者多个空格,语句是:
$str=preg_replace(\'/ +/\',\'_\',$str);

如果是对各类空白字符(空格、制表、回车等)进行替换,那么可以使用\\s代替空格,语句是:
$str=preg_replace(\'/\\s+/\',\'_\',$str);
上面使用了+表示多个空白(例如两个空格、或者一个空格与回车)替换为一个下划线符号。
参考技术A

很简单代码如下:

preg_replace('/[\\s ]/', '_', $content); // 替换空格,包括大空格

如果有疑问,欢迎追问~

本回答被提问者采纳
参考技术B 如果光是替换空格,用不着使用正则,用字符串替换效率更高

java :6—20个字符,只能包含大小写,数字,标点(空格除外) 正则表达式怎么写?

参考技术A ^[A-Z0-9[^ ]]6,20$

望采纳!!!

本回答被提问者采纳
参考技术B 得到单个字符的编码值,根据编码值去判断,更加简单追问

具体怎么做,能举个例子吗?

追答

每个字符都有唯一的ASCII码,数字,字母等各种字符都有范围
var strAscii = new Array();//用于接收ASCII码
for(var i = 0 ; i < str.length ; i++ )
strAscii[i] = str.charCodeAt(i);//只能把字符串中的字符一个一个的解码

根据各种字符的范围去判断。

以上是关于php正则表达怎么把一个字符串中的所有空格都转化为下划线的主要内容,如果未能解决你的问题,请参考以下文章

java正则表达式,怎么匹配空白行

正则表达式选择所有不在引号中的空格?

php 正则表达示中的原子

利用正则表达式检测给定的字符是否是回文

判断字符串不能全部为数字的的正则表达式怎么写?

java :6—20个字符,只能包含大小写,数字,标点(空格除外) 正则表达式怎么写?