2015-11-13 2 views
3

У меня есть строка образца, как http://ezsearch.annuitynexus.com/javascript:popOne ('http://www.genworth.com/%20')Как получить строку внутри одинарных кавычек?

от этого мне нужно, чтобы получить http://www.genworth.com/%20

Regex Я был /'(.*?)'/

код, я попытался было

<cfset link = "http://ezsearch.annuitynexus.com/javascript:popOne('http://www.genworth.com/%20')"> 
<cfset matches = REMatch("/'(.*?)'/", link) /> 
<cfdump var="#matches#"> 

Но его возврат пустым массивом. Что мне не хватает?

FIDDLE, в котором я попытался REGEX

+1

Попробуйте ''. Получите доступ к захваченному тексту в группе 1. –

+0

@stribizhev ваш anser мне помог. Это было не совсем правильно, но я сделал это решение. Спасибо. –

+0

Проверьте код, который я адаптировал с другого сайта. Пожалуйста, дайте мне знать, если это сработает для вас. –

ответ

2

Поскольку это Coldfusion вопрос я буду предлагать Coldfusion ответ без усложнять его с RegEx :-)

<cfset link = "http://ezsearch.annuitynexus.com/javascript:popOne('http://www.genworth.com/%20')" /> 
<cfset matches = ListGetAt(link, 2, "'") /> 
<cfdump var="#matches#" /> 
+0

Идеальное решение. –

0

Побег ваши одиночные кавычки:

var str = "http://ezsearch.annuitynexus.com/javascript:popOne('http://www.genworth.com/%20')"; 
var res = str.match(/\'(.*?)\'/); 
alert(res[1]) 

http://jsfiddle.net/s865b5bn/2/

удачи !!

+0

Ваша скрипка не работает. Я обновил его с вашим ответом. http://jsfiddle.net/Rino_Raj/s865b5bn/1/ его же результат –

+0

Измените 'res [0]' на 'res [1]'. –

+0

не работает для меня. Его возвращающий пустой массив. В js его работа, но в coldfusion его возвращающийся пустой массив. –

0

В любом случае я нашел решение. Я не думаю, что это правильно. Но все же это работает.

<cfset link = "http://ezsearch.annuitynexus.com/javascript:popOne('http://www.genworth.com/%20')"> 
<cfset matches = REMatch("'([^']*)", link) /> 
<cfset matches = Right(matches[1], Len(matches[1])-1) /> 
<cfdump var="#matches#"> 

ИЛИ

<cfset link = "http://ezsearch.annuitynexus.com/javascript:popOne('http://www.genworth.com/%20')"> 
<cfset matches = REMatch("'(.*?)'", link) /> 
<cfdump var="#matches#"> 

работает отлично. Но в этом выводе нечто вроде «http://www.genworth.com/%20» так что мне нужно, чтобы удалить первый и последний символ

0

Вам не нужно добавить регулярное выражение разделителей /.../ в ColdFusion регулярных выражений. Также целесообразно превратить ленивую точку в соответствие с классом символов с отрицанием, чтобы регулярное выражение стало более эффективным.

Использование

<cfset matches = REMatch("'([^']*)", link) /> 

Обратите внимание, что [^'] соответствует любому символу, кроме одного апострофа.

Игра внутри группы захвата 1.

См regex demo

+0

Это не работает. Извините –

+0

Хорошо, я вижу. Я вернулась к тому, что было раньше. Кстати, поддерживается ли поддержка? Я думаю, это может быть, поскольку он использует Java regex. Попробуйте просто '(? <= ') [^'] +'. –

Смежные вопросы