REGEX-带有空间的组字符串

发布于 2025-01-17 17:24:31 字数 201 浏览 0 评论 0原文

我需要将一个字符串分组为3个字符。

示例:

In: 900123456 -> Out: 900 123 456
In: 90012345  -> Out: 900 123 45
In: 90012     -> Out: 900 12

有什么方法可以使用正则表达式?

非常感谢。

I need to group a string into groups of 3 characters.

Examples:

In: 900123456 -> Out: 900 123 456
In: 90012345  -> Out: 900 123 45
In: 90012     -> Out: 900 12

Is there any way to do this with regex?

Thank you very much.

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

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

发布评论

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

评论(1

只是在用心讲痛 2025-01-24 17:24:31

尝试使用 /\d{3}(?!\b)/gm 作为模式,使用 $0 作为替换。

说明:

  • \d 匹配数字。但我们想要其中 3 个,因此它变成 \d{3}
  • 我们想将匹配项本身替换为空格。但如果它位于行尾,我们就不应该这样做,因为我们不想添加尾随空格。这可以通过使用 \b 进行负向前瞻来搜索单词边界来避免。对于负向预测,这将变为 (?!\b)

您可以在这里测试它:https://regex101.com/r/MIQnF3/1

let input = document.getElementById('input');
let output = document.getElementById('output');

// In JS I had to capture the 3 digits in a group since $0 did not work.
let pattern = /(\d{3})(?!\b)/gm;

output.innerHTML = input.innerHTML.replace(pattern, '$1 ');
<p>Input:</p>
<pre><code id="input">900123456
90012345
90012</code></pre>

<p>Output:</p>
<pre><code id="output"></code></pre>

Have a go with /\d{3}(?!\b)/gm as pattern and $0 as replacement.

Explanation:

  • \d to match a digit. But we want 3 of them so it becomes \d{3}.
  • we would like to replace the match by itself followed by a space. But we should not do that if it is at the end of the line because we don't want to add a trailing space. This can be avoided with a negative lookahead to search for a word boundary with \b. This becomes (?!\b) for the negative lookahead.

You can test it here: https://regex101.com/r/MIQnF3/1

let input = document.getElementById('input');
let output = document.getElementById('output');

// In JS I had to capture the 3 digits in a group since $0 did not work.
let pattern = /(\d{3})(?!\b)/gm;

output.innerHTML = input.innerHTML.replace(pattern, '$1 ');
<p>Input:</p>
<pre><code id="input">900123456
90012345
90012</code></pre>

<p>Output:</p>
<pre><code id="output"></code></pre>

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