Javascript - 按空格拆分
Javascript - Split by whitespace
我需要用空格拆分字符串,但当在"()"或"[]"中找到空格时则不需要。我从这里发现了几个类似的问题,但我找不到理想的解决方案。
我要解析的字符串可以看起来像这样(方括号也可以用常规括号代替):
(1)"一些文本[更多文本]"
(2)"一些文本[更多文本]"
我希望他们像这样分开:
(1) ["一些"、"案文"、"[更多案文]"]
(2) ["一些"、"案文[更多案文
]]]
Javascript - 除以空格,除非在括号内 - 这个问题非常相似,答案在第一 (1) 情况下效果非常好。但在第二 (2) 种情况下,它的效果并不好。拆分后,它看起来像这样:
["一些"、"文本[更多"、"文本]"]
有没有一种简单的方法可以实现我想要的?
这些似乎有效:
1: '[[^']]+']|'S+'[[^']]+']|'S+
2: '[[^']]+']|('S('[[^']]+'])?)+
3: ('S+)?'[[^']]+']|'S+
- 例1
- 例2
- 例3
根据正则表达式英雄的说法,第一个是迄今为止优越的,而米格尔的回答略快。
尝试(/('w+ )|('w+)?(('[|'().*(']|'))$)/g)
var a = "Some text [more text]";
var b = "Some text[more text]";
结果是:
a.match(/('w+ )|('w+)?(('[|'().*(']|'))$)/g)
["一些"、"文本"、"[更多文本]"]
b.match(/('w+ )|('w+)?(('[|'().*(']|'))$)/g)
["一些","文本[更多文本]"]
使用此正则表达式:
/('w+)?('([^')]*?')|'[[^']]*?'])('w+)?|'w+/g
样品:
console.log( 'Some(1) text [more text]'.match(regex) );
//Output-> ["Some(1)", "text", "[more text]"]
console.log( '(2) Some text[more text]'.match(regex) );
//Output-> ["(2)", "Some", "text[more text]"]
console.log( '(3 45)Some text[more text]'.match(regex) );
//Output-> ["(3 45)Some", "text[more text]"]
相关文章:
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 如何将字符串拆分为字符,但在javascript中保留空格
- jQuery字符串使用split()方法在空格后拆分字符串
- 较短的正则表达式,按2个条件拆分,外部有空格
- Javascript在第一个空格上拆分字符串
- Javascript - 按空格拆分
- 如何在javascript中拆分行空格/分隔符上的字符串
- Javascript 字符串在追加为类属性时按空格拆分
- Javascript:拆分键值(带空格)
- 如果找到一个或多个空格,则拆分
- 流星空格键自定义拆分助手不渲染
- 如何用空格或逗号拆分字符串
- 在出现的第一个空格时拆分字符串
- 使用包含括号、分号和空格的正则表达式拆分字符串时出现问题
- 在除引号外的空格上拆分字符串,但包括不完整的引号
- 将字符串拆分为带空格的单词,除非在一对双引号之间
- 按空格 javascript 拆分字符串
- 如何使用正则表达式拆分具有不同符号和空格的字符串
- 正则表达式:在空格上拆分一个字符串 + 每个要单独包含的特殊字符
- JavaScript 在空格时拆分,但并非总是如此