如果Javascript中的文字字符串包含逗号,则正则表达式将获取引号之间文字字符串的内容

如果Javascript中的文字字符串包含逗号,则正则表达式将获取引号之间文字字符串的内容,javascript,regex,string,quotes,comma,Javascript,Regex,String,Quotes,Comma,我真正的问题是,我有一个巨大的数组,它有几个值类型,例如:字符串、整数、布尔值、浮点值、日期时间、空格、对象和其他数组,它以完整的字符串文本的形式出现在我的面前,我需要对其进行解析,以便以后进行求值和序列化。 如下所示: var result = "ocmq={[\"REQ2014/103590\", false, 41, \"Others\", \"Close\", 185312, '02/07/2014 10:19:28', \"non character player\", \"curre

我真正的问题是,我有一个巨大的数组,它有几个值类型,例如:字符串、整数、布尔值、浮点值、日期时间、空格、对象和其他数组,它以完整的字符串文本的形式出现在我的面前,我需要对其进行解析,以便以后进行求值和序列化。 如下所示:

var result = "ocmq={[\"REQ2014/103590\", false, 41, \"Others\", \"Close\", 185312, '02/07/2014 10:19:28', \"non character player\", \"current operator\", , 0, false, {}, "Greetings everyone, as I said before, some extra engagement is needed in order to accomplish OS \"OS2013/103581\" , which was removed unproperly, and now we need rollback it to it's previous status (\"O.S. Valid\"). Regarding that previously related OS was tracked about last december and it must integrate current payment orders we have high severity on this issue. Thank you.", \"approved\", {}, \"closed\", \"high\", \"cus\"}]";
我一直在处理这种情况,直到我达到以下目标:

"Greetings everyone, as I said before, some extra engagement is needed in order to accomplish OS \"OS2013/103581\" , which was removed unproperly, and now we need rollback it to it's previous status (\"O.S. Valid\"). Regarding that previously related OS was tracked about last december and it must integrate current payment orders we have high severity on this issue. Thank you."
如您所见,这是一个由所见即所得编辑器填充的文本字符串,用户可以随意编写,如使用逗号、引号、括号、特殊字符等。。特别注意逗号

我想知道如何匹配这个特定的文本字符串条目

我需要在双引号之间获取内容(只有内容,如果可能的话没有双引号)当且仅当它有逗号时我需要忽略内部双引号/单引号,就像这里出现的那样:
“OS2013/103581\”
或者没有斜杠,比如
“OS2013/103581”

因此,它应该匹配:

  • 只有引号之间的文本

  • 当且仅当其中包含逗号时

  • 忽略内部双引号/单引号
例如:

这个字符串应该匹配,一旦它位于引号之间,它就有逗号,它可以忽略“引号”和“引用的slahes”


有可能吗?我希望如此!任何帮助都将不胜感激。干杯;)

以下正则表达式符合您的标准:

/".*;.*"/g
你的准则是:

  • 仅引号之间的文本
  • 当且仅当它至少包含一个分号
  • 忽略内部双引号/单引号
满足最后一个条件是因为正则表达式中的量词(如“*”和“+”)是“贪婪的”(请参阅)

编辑


我之前给出的答案中的正则表达式没有忽略内部单引号。新的正则表达式使用否定字符类来忽略单引号。

第一个代码块不是有效的JS语法。您的字符串在其中过早终止。我在示例中没有看到任何分号。您是指逗号吗?确实是@RobbyCornelissen I搞错了,已经看过了。谢谢。@Cerbrus说得很对,我还在编辑它。@xxbbc我要做的是用每个逗号分隔符分割字符串链,一旦它是分隔每个数组项的分隔符。所以我循环它,对于每个项,我都有正则表达式模式来匹配每个特定的情况。
/"[^']*;[^']*"/