gpt4 book ai didi

Javascript 正则表达式 - 忽略 2 个字符之间的某些字符

转载 作者:搜寻专家 更新时间:2023-11-01 05:01:10 25 4
gpt4 key购买 nike

我需要在空格字符 (' ') 上拆分字符串,但同时排除任何空格 出现在 2 个特定字符(比如单引号)内。

这是一个示例字符串:

This-is-first-token This-is-second-token 'This is third token'

输出数组应该是这样的:

[0] = This-is-first-token
[1] = This-is-second-token
[2] = 'This is third token'

问题:这可以用正则表达式优雅地完成吗?

最佳答案

简答:

用于此目的的简单正则表达式是:

/'[^']+'|[^\s]+/g

示例代码:

data = "This-is-first-token This-is-second-token 'This is third token'";
data.match(/'[^']+'|[^\s]+/g);

结果:

["This-is-first-token", "This-is-second-token", "'This is third token'"]

说明:

Regular expression visualization

Debuggex Demo

我认为这很简单,只要用一个正则表达式就可以做到。

末尾的 g 使其成为全局匹配项,因此您可以获得所有三个匹配项。没有它,您只会得到第一个字符串。

\s 匹配所有空格(在本例中基本上是 和制表符)。因此,即使在 This-is-first-tokenThis-is-second-token 之间有一个选项卡,它也能正常工作。

要匹配大括号中的内容,请使用:

data.match(/\{[^\}]+\}|[^\s]+/g);

Regular expression visualization

Debuggex Demo

大括号或单引号:

data.match(/\{[^\}]+\}|'[^']+'|[^\s]+/g);

Regular expression visualization

Debuggex Demo

关于Javascript 正则表达式 - 忽略 2 个字符之间的某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com