将JavaScript中的字符串分成三部分

Break Apart string in JavaScript with three parts

本文关键字:三部 字符串 JavaScript      更新时间:2023-09-26

可能重复:
JavaScript RegExp三部分

我需要JavaScript中正则表达式的帮助(对不起,我还在努力学习。)

我有这个字符串:

all (any) -del
all -del (any)
all (any)
all -del
all

PS:allanydel可以取任何值,包括空格。

我需要将每个字符串分开:

var1 = all
var2 = any (or null)
var3 = del (or null)

你能帮我做这个吗?谢谢

怎么样:

/^(.*?)'s?('(.*?')|)'s?(-.*?|)$/

应用于您的示例:

'all (any) -del'.match(/^(.*?)'s?('(.*?')|)'s?(-.*?|)$/)
["all (any) -del", "all", "(any)", "-del"]
'all (any)'.match(/^(.*?)'s?('(.*?')|)'s?(-.*?|)$/)
["all (any)", "all", "(any)", ""]
'all -del'.match(/^(.*?)'s?('(.*?')|)'s?(-.*?|)$/)
["all -del", "all", "", "-del"]
'all'.match(/^(.*?)'s?('(.*?')|)'s?(-.*?|)$/)
["all", "all", "", ""]

要处理新的需求,有点复杂:

'all (any) -del'.match(/^(.*?)(?:'s?('([^-]*')|)'s?(-[^()]*|)|'s?(-[^()]*|)'s?('([^-]*')|))$/)
["all (any) -del", "all", "(any)", "-del", undefined, undefined]
'all -del (any)'.match(/^(.*?)(?:'s?('([^-]*')|)'s?(-[^()]*|)|'s?(-[^()]*|)'s?('([^-]*')|))$/)
["all -del (any)", "all", undefined, undefined, "-del ", "(any)"]