javascript - 需要 Javascript 正则表达式帮助 - 拆分文本

标签 javascript regex string split

我有一个字符串,表示由空格分隔的标签列表。它可能看起来像这样:

Australia 2010 David November Family

如果标签至少包含一个空格,则必须用引号引起来。所以字符串可以是:

"Best Friends" "My Pictures" Wow "Very Nice Photo" University

单个单词也可以使用引号。例如:

"Good One" Fantastic "February" "My Family" "Friends"

问题是:
如何从字符串中获取标签数组?
例如,我想从第三个字符串中获取以下数组:

arr[0] = "Good One"
arr[1] = "Fantastic"
arr[2] = "February"
arr[3] = "My Family"
arr[4] = "Friends"

如果字符串的格式不正确,我想了解它(例如:得到空数组作为结果)。

最佳答案

您可以使用 /"[^"]+"|\w+/ 等正则表达式来匹配标签。 要获取包含所有不带引号的匹配项的数组,您可以使用类似

var re = /"[^"]+"|\w+/g;
var result = [];
var match;
while(match = re.exec(input))
    result.push(match[0].replace(/"/g, ""));

如果不需要删除引号,则可以直接使用

var result = input.match(re);

关于javascript - 需要 Javascript 正则表达式帮助 - 拆分文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3378541/

相关文章:

javascript - 专注于输入字段

javascript - Node.js 获取内存使用率高的通知

javascript - 从 Moment.js 中的 UTC 日期字符串创建本地日期

java - 有人知道如何使用 Java 正则表达式测试整个字符串的匹配吗?

regex - 需要正则表达式定界符的指导

Android:比 android:ellipsize ="end"添加 "..."到截断的长字符串更好的东西?

javascript - 如何在密码字段中显示文本

regex - 动态变量名称和哈希键

string - Delphi中可以将字符串转换为集合吗

c - Printf(%s) 打印 0