正则表达式匹配两个引号

时间:2012-01-09 19:33:18

标签: javascript regex

以下是我想要匹配的字符串类型

(字符串是单引号分隔(想象var str = '"hi, what"s up, what a nice day"';)):

  1. ' "This is a str"'
  2. ' "This is also a str "
  3. '"So is this'
  4. '"This should "also match un"til th"e last "'
  5. 在每种情况下,如果在最后一个引号之前只有空格(这是完全可选的),它应该捕获第一个引用之后的内容。

    另一件事,只包含"的字符串与ex '""""""""""""'不匹配,根本不匹配。

    引号之间和引号之外也会忽略前导和尾随空格。

    这是我到目前为止的正则表达式:

    /^\s*\"\s*(.*?)\s*(?:\"\s*)?$
    

    但它也得到了'""""""""""""""""',所以这就是我被困住的地方。

    如果不匹配整个dquotes字符串,我该怎么办?

    编辑:

    我想我解释了我想要的错误,我想让它匹配一串dquotes,但不是捕获任何一个

1 个答案:

答案 0 :(得分:1)

您可以更改正则表达式,以便内容包含至少一个非“字符:

/^\s*\"\s*(.*?[^"].*?)\s*(?:\"\s*)?$/

更新:如果你不想要开始和追踪“要捕获,只需在边界允许其中几个:

/^\s*\"+\s*(.*?)\s*(?:\"+\s*)?$/