2014-01-02 3 views
0

У меня есть пара регулярных выражений, каждая из которых работает для удаления начальных и конечных параметров, но я ищу способ их комбинирования.Сочетание двух регулярных выражений?

Захват начало:

^[a][(] 

Захват окончание:

[\,]\d{1,3}\,[n][u][l][l][)] 

Я попытался с помощью оператора && объединить их, но я не подвожу ничего.

Это пример одного из них на Rubular.

+0

... Одно регулярное выражение с группой захвата вокруг фактического JSON. Тем не менее, вы уверены, что регулярное выражение - лучший способ сделать это, например, если есть новые строки, просто отбросьте первую и последнюю строки. –

+0

Ответ JSONP возвращает все в одной строке, как показано в примере Rubular. –

+1

Не следует удалить "=?" по запросу url может вернуться без этой вещи jsonp? – YOU

ответ

1

Помимо удаления =? по запросу url, который я сказал в комментарии, вы можете использовать его, если он находится на одной линии.

^\w+\(|[^}]+$ 
0

Это будет соответствовать модели начала и конца и захватить все между:

/^a\((.*),\d{1,3},null\)/.match(s)[1] 

Вот как вы можете использовать его, чтобы лишить (я редактировал вниз огромную строку в вашем Rubular примере)

irb> s = 'a({"query":"love",...},200,null)' 
=> "a({\"query\":\"love\",...},200,null)" 

irb> /^a\((.*),\d{1,3},null\)/.match(s)[1] 
=> "{\"query\":\"love\",...}" 

irb> puts /^a\((.*),\d{1,3},null\)/.match(s)[1] 
{"query":"love",...} 
Смежные вопросы