正则表达式 匹配第一个空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式 匹配第一个空格相关的知识,希望对你有一定的参考价值。

193,562,342 [アニメ DVD] xxxxxxxx 第01话 (704x396 WMV9).wmv
179,722,356 [アニメ DVD] xxxxxxxx 第02话 (704x396 WMV9).wmv
198,042,342 [アニメ DVD] xxxxxxxx 第03话 (704x396 WMV9).wmv

匹配第一个空格。
空格前后的字符无规律。

55555 AAAA BB BCCC
AAAAA 555S SE ESSD
AAA22 5544 55 5588
把上面的替换成
55555----AAAA BB BCCC
AAAAA----555S SE ESSD
AAA22----5544 55 5588

也就是每行的第一个空格。但不能匹配前后的字符。

哈哈,上个比较烦点的
?
$line="
械在在工第一季<
00:00
彭诗云
<";
preg_match_all("/[^\s
]+/s",$line,$mt);//
这里除了匹配
空格,还匹配中文全角的空格
\s后面直接加上就是了
print_r($mt);
for
($i=0
;$i<count($mt[0]);$i++)

$k=$k.$mt[0][$i];

echo
"
";
echo
$k;
echo
"
";
?
\s
肯定不能匹配你的中文半角/全角的
空格,因为二者是不一样的。你写匹配时,直接切换输入法为中文,打空格。不是特别字符的。
参考技术A 1 如果只匹配第一个空格,那么用
\d\s\[

2 其实用编程语言的str.indexof(" ")就可以得到第一个空格的位置
然后用str.substring(begin,end)可以得到具体的子串

3 如果空格前后无规律的话,如果第一个空格前面都是数字或者是逗号的话,并且能保证前面的数字和逗号个数最少大于等于4个,那么用
[\d,]4,\s

测试通过
参考技术B 用这个:^(?:\S*?)(\s)

然后捕捉第一个分组内容,既\1就是第一个空格。
参考技术C 试试这个吧:

1.(\S*)\s(\S*\s\S*\s\S*)\r
2.\1----\2\r

javascript,java,perl,VBScript测试成功,测试文本:

55555 AAAA BB BCCC
AAAAA 555S SE ESSD
AAA22 5544 55 5588

以上是关于正则表达式 匹配第一个空格的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式 - 在第 n 个空格之间匹配数据并在第 n 个空格处停止

正则表达式 - 匹配第二个逗号(或逗号和空格)之后的所有内容

第一个正则表达式实例匹配在第一行不匹配?

正则表达式.+可以匹配空格,但是[.\w]+却不匹配,为啥?

正则表达式匹配第N处

输出导致与正则表达式不匹配的第一个字符