我需要正则表达式来选择第一个空格,无论该行上的空格或单词数量是多少。
E.g。
aaa bbb ccc ddd fff ggg
我只想在'aaa'
和'bbb'
之间选择第一个空格。
我创建了类似^(\S+)\s
的内容,选择了'aaa_'
,但我只希望选择空格,即使行中有更多空格,也只需要行中的第一个空格。
感谢您的反馈
答案 0 :(得分:3)
使用:
/\s/
如果您不使用全局标记g
,则正则表达式与第一个实例匹配。
答案 1 :(得分:1)
带有正则表达式的PHP示例
$str = 'aaa bbb ccc ddd fff ggg ';
preg_match_all('/\s/', $str, $matches);
print "-->".$matches[0][0]."<--";
答案 2 :(得分:1)
您可以将第一个空格与仅包含空格的正则表达式匹配,例如:
PS Home:\> [regex]::Match('aaa bbb ccc ddd fff ggg', ' ')
Groups : { }
Success : True
Captures : { }
Index : 3
Length : 1
Value :
请注意\s
将匹配空白的所有内容,包括标签,不间断空格和许多其他内容,而不仅仅是U + 0020。
答案 3 :(得分:1)
$str = "aaa bbb ccc ddd fff ggg";
对于 PHP preg_replace :如果您只想替换第一个空格,设置限制:
echo preg_replace('/\s/', "_", $str, 1);
输出:
aaa_bbb ccc ddd fff ggg
答案 4 :(得分:0)
如果我理解正确,您希望将第一个单个空格字符更改为选项卡。在Notepad ++中查找和替换all应该相当简单,只需确保选择正则表达式。
您识别角色的方式是正确的:
^(\S+)\s
导致'aaa _'
但是当你去替换它时试试这个:
\1\t
导致'aaa \ t'
答案 5 :(得分:0)
只需交换您的捕获组,而不是:
^(\S+)\s
输入Search what:
框:
^\S+(\s)
第一组空间将被捕获。