Что соответствует этому регулярному выражению? / ([^ "^ \ S] +) \ с * |" ([^ "] +)" \ с * / г - PullRequest
0 голосов
/ 31 марта 2012

Я действительно должен быть в состоянии прочитать регулярное выражение, но все равно кто-нибудь может рассказать мне об этом?

/([^"^\s]+)\s*|"([^"]+)"\s*/g

Просто для фона; он используется в Alfresco для соответствия тегам документа. Есть ли веб-сайт, к которому вы можете подключить их и получить объяснение (кроме SO)!

Ответы [ 2 ]

6 голосов
/ 31 марта 2012
(        # start a capture group
[^"^\s]+ # one or more characters NOT quote, caret, or white space
)        # close capture group
\s*      # followed by optional white space
|  # either match everything before this '|' or everything after it
"        # match a quote character
(        # start capture group
[^"]+    # one or more characters NOT quote
)        # close capture group
"        # the closing quote
\s*      # followed by optional white space

Итак, как сказал Блинди, он либо совпадает со строкой, которая не имеет '^', не имеет кавычек или пробелов, ИЛИ, он соответствует всему между двумя символами кавычек.И он сохраняет то, что нашел в обратной ссылке (то, что я назвал «группами», потому что у меня в голове застрял Python).

2 голосов
/ 31 марта 2012

Он либо совпадает с идентификатором (что-то, что не содержит ", ^, либо с каким-либо пробелоподобным символом - пробел, табуляция, новые строки) или чем-то между кавычками, за которыми следует любое количество пробелов.

...