RegExp совпадение одного слова или нескольких слов в кавычках - PullRequest
6 голосов
/ 28 ноября 2008

Мне нужен RegExp, который соответствует слову или нескольким словам в кавычках.

[\ w] * соответствует слову

"[\ w \ W && [^"]] * "соответствует нескольким словам в кавычках.

(кстати, не уверен, почему \ w \ W работает, но не просто. (Должен соответствовать всем символам)

Так как мне объединить эти два регулярных выражения?

Ответы [ 3 ]

6 голосов
/ 28 ноября 2008

прежде всего спасибо.

ваши ответы действительно помогли - но я заметил, что мой вопрос, возможно, был недостаточно ясен.

В любом случае, из ваших ответов я получил следующее регулярное выражение:

"[^"] + "| [\ ш] +

Что соответствует словам и нескольким словам в кавычках.

например: что такое "эта вещь" даст 3 матча: первый матч: что второй матч: есть третий матч: «эта вещь»

Что именно то, что мне было нужно. Еще раз спасибо.

5 голосов
/ 28 ноября 2008

"[^"]+" делает то, что вы хотите? (Сопоставьте двойные кавычки, сопоставьте один или несколько символов, которые не являются двойными кавычками, затем сопоставьте вторую двойную кавычку.)

3 голосов
/ 28 ноября 2008

Я бы предпочел:

"\s*((?:\w(?!\s+")+|\s(?!\s*"))+\w)\s*"

вместо "[^"]+", потому что ^" соответствует всему, а не только \w ( буквенно-цифровой ) символ [a-zA-Z_0-9]

Таким образом, вы сопоставляете только символы \w в кавычках без пробелов.

" ee eee e ee  "

дает вам в группе (1):

ee eee e ee

Отрицательный прогноз (?!\s+") здесь для того, чтобы я не включал последние пробелы перед двойной кавычкой;

...