如何只选择第一个空格,不包括其他字符
我想在 Visual Studio Code 中使用“查找和替换”修复一些格式化字符串。 为此,我必须仅在每行中选择第一个空格,不包括字符。
格式如下:
dc932a17 3919734822 5234dce7debe.mp4
e_f943 4961243553 03be639fa8b7.mp4
9cbcc2 4365389628 e741018829d6.mp4
543419d 4639618462 d0bd72c9b737.mp4
所需的输出如下:
dc932a17-3919734822 5234dce7debe.mp4
e_f943-4961243553 03be639fa8b7.mp4
9cbcc2-4365389628 e741018829d6.mp4
543419d-4639618462 d0bd72c9b737.mp4
所以我要选择的是:
dc932a17 3919734822 5234dce7debe.mp4
|------|^These spaces
^Not these characters
所以我制作了一个像这样的正则表达式:
^(?:([a-zA-Z0-9_]+))\s
但这会选择第一个空格之前的所有字符(包括其中)。
dc932a17 3919734822 5234dce7debe.mp4
|-------|
^Selected
我有什么错的吗?
健康)状况: 空格前的字符长度各不相同。我无法使用 alt+shift+ 拖动选择
I want to fix some formatted strings with 'find and replace' in Visual Studio Code.
To do so, I have to select first spaces only in each line, not including characters.
The format goes like this :
dc932a17 3919734822 5234dce7debe.mp4
e_f943 4961243553 03be639fa8b7.mp4
9cbcc2 4365389628 e741018829d6.mp4
543419d 4639618462 d0bd72c9b737.mp4
Desired outputs look like :
dc932a17-3919734822 5234dce7debe.mp4
e_f943-4961243553 03be639fa8b7.mp4
9cbcc2-4365389628 e741018829d6.mp4
543419d-4639618462 d0bd72c9b737.mp4
So what I want to select are :
dc932a17 3919734822 5234dce7debe.mp4
|------|^These spaces
^Not these characters
So I made an regex like this :
^(?:([a-zA-Z0-9_]+))\s
But this selects all the characters before the first space including in it.
dc932a17 3919734822 5234dce7debe.mp4
|-------|
^Selected
Is there anything I got wrong?
condition:
The characters' length before spaces vary. I can't use alt+shift+Drag selection
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
查找:
^(\S+)\s+
替换:
$1-
请参阅正则表达式演示。
注意:如果qualifyinf行中有前导空白字符,需要在
^(
后添加\s*
,即^(\s*\S+)\s+
。详细信息:
^
- 开头一行(\s*\S+)
- 第 1 组 ($1
):零个或多个空白字符(但此处不包括换行符,因为该模式不包含\r
或\n
),然后是一个或多个非空白字符\s+
- 一个或多个空白(换行符除外)。You can use
Find:
^(\S+)\s+
Replace:
$1-
See the regex demo.
Note: If there are any leading whitespace chars on the qualifyinf line, you need to add
\s*
after^(
, i.e.^(\s*\S+)\s+
.Details:
^
- start of a line(\s*\S+)
- Group 1 ($1
): zero or more whitespace chars (but not line break chars here since the pattern does not contain\r
or\n
) and then one or more non-whitespace chars\s+
- one or more whitespaces (except line break chars).