如何使用Google表中的Regexreplace仅用仪表板替换字符串中的第一个Whitespace?

发布于 2025-01-24 19:26:49 字数 213 浏览 0 评论 0原文

试图替换: “ abcd efgh ijkl” “ abcd-efgh ijkl” 在Google表中。 我尝试了:

=REGEXREPLACE(C5,"(?:[A-Za-z]+)(\s)","\-$1")

但是它不起作用。我认为我需要使用乞讨/结束锚(^$),但这也失败了。 有什么想法吗?

Trying to replace:
"abcd efgh ijkl" with "abcd-efgh ijkl"
in google sheets.
I tried:

=REGEXREPLACE(C5,"(?:[A-Za-z]+)(\s)","\-$1")

but it doesn't work. I think I'd need to use beg/end anchors (^$)but this failed too.
Any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

等数载,海棠开 2025-01-31 19:26:50

捕获领先的部分并将其放回替换中:

=REGEXREPLACE(C5, "^(.*?)\s", "$1-")

这捕获了第一个空格的开始之间的所有内容,消耗了空格,并用捕获的内容和破折号替换 - 用仪表板有效地代替了空间。

正则的重要部分是 。*,它使。尽可能少。与普通的。*相反,它尽可能匹配 (即greedy )。

Capture the leading part and put it back in the replacement:

=REGEXREPLACE(C5, "^(.*?)\s", "$1-")

This captures everything between the start to the first whitespace, consuming the whitespace, and replaces it with the captured content and a dash - effectively replacing the space with a dash.

The important part of the regex is the ? after .*, which makes the .* reluctant, which matches as little as possible. As opposed to plain .*, which matches as much as possible (ie greedy).

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