如何只选择第一个空格,不包括其他字符

发布于 2025-01-10 21:47:01 字数 847 浏览 0 评论 0原文

我想在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

水中月 2025-01-17 21:47:01

您可以使用

查找^(\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+.

enter image description here

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).
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文