JavaScript 字符串分割

标签 javascript regex

所以如果我有一个像这样的字符串:

'老板:“人员 1”且职业:“工程师”'

有没有办法可以将字符串拆分为数组,如下所示:

['老板:', '"人员 1"', 'AND', '职业:', '"工程师"']

我有很多不同的正则表达式分割和多个参数分割,但我似乎无法实现这一点。有什么想法吗?

仅供引用:是的,我想保留有关人员 1 和工程师的引文,并在引文之间保留空格

谢谢!

最佳答案

var input = 'boss: "Person 1" AND occupation: "Engineer"';

console.log(input.match(/"[^"]*"|[^ ]+/g));

// Output:
// [ 'boss:', '"Person 1"', 'AND', 'occupation:', '"Engineer"' ]

说明

您想要匹配两种事物:

  1. 其中没有空格的事物(因为空格分隔术语)。
  2. 引号中的内容(允许空格)。

这里的正则表达式由两部分组成:

  1. "[^"]*" - 匹配一个双引号,后跟任意数量的非双引号字符,最后跟另一个双引号。
  2. [^ ]+ - 匹配一个或多个非空格字符。

两者通过竖线 (|) 组合在一起,意思是“或”。它们一起匹配您想要查找的两种类型的内容。

关于JavaScript 字符串分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44811031/

相关文章:

javascript - 如何使用 <input type ="number"> 更改线宽?

javascript - 如何设置 Javascript 片段的样式

javascript - 为什么定义函数前要用分号?

java - 正则表达式将所有空 JSON 数组值替换为 null

javascript - 为什么正则表达式需要很长时间才能评估某个值?

javascript - 如何使用起始 Latlng 和结束 Latlng 在数据库中的所有标记之间创建折线?

python - 逐行读取文本文件并存储匹配 Python 中特定模式的变量

c# - 如何使用正则表达式从字符串中获取 ID

javascript - 替换子字符串和可选的后续字符

javascript - 获得与数组的 Javascript 引擎(和代码)表示形式完全相同的语法