2016-07-01 2 views
1

Я задал вопрос, большое спасибо за всю помощь. У меня есть URL-адрес.Извлечение частичного регулярного выражения из URL

/Hello/World/special/Case/2016/07/01/offer-015155.html

мне нужно только "2016/07/01/offer-015155" эту часть, и это динамически изменяется каждый раз. Не могли бы вы помочь?

  • Я пробовал "(.*?)" , "\d{4}/\d\d/\d\d/offer-\d+.", но не помог.

Когда я забегаю, он говорит, что не найден. :(

+0

Вы должны избежать разделителей: '\ d {4} \/\ d \ d \/\ d \ d \/offer- \ d + ' –

+0

[Regex101.com] (https://regex101.com/r/v Y5mS2/1) является вашим другом. :) –

+0

@MariaDeleva: Я пробовал точно, что ... не работал – user3680022

ответ

0

Если вы хотите извлечь часть URL это будет вполне достаточно, чтобы использовать что-то очень простое, как (.+)

Демо:

RegExp Tester

Пример Регулярная конфигурация выражения (бит «Поле для проверки»)

Regular Expression Extractor

Ссылки:

+0

Спасибо, Дмитрий. Ты просто потрясающий, как обычно. Но вижу, что у меня здесь такая штука. Я сейчас что-то извлек, так что теперь это будет так: «/2016/01/07/offer-456789.html». Есть ли способ, я могу «удалить» .html ....так что я мог бы использовать до тех пор, пока у меня не будет .html. Благодарю. – user3680022

+0

Может быть, изменить regex на '/ Hello/World/special/Case /(.+). Html'? –

0

Вы могли бы рассмотреть возможность использование положительного просмотра назад в сочетании с положительным опережающим просмотром, как это:

(?<=\/Hello\/World\/special\/Case\/).*(?=.html) 

Это регулярное выражение очень четко, но делает работу Смотрите это для объяснения регулярного выражения:. https://regex101.com/r/vY5mS2/2

EDIT: Или просто использовать захват группы (https://regex101.com/r/vY5mS2/5)

\/Hello\/World\/special\/Case\/(.*)\.html 
0

Вы можете попробовать FO llowing код также:

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class Test { 
    public static void main(String[] args) { 
     Pattern pattern = Pattern.compile("(\\d{4}/\\d{2}/\\d{2}/offer-\\d+)"); 
     String testString = "/Hello/World/special/Case/2016/07/01/offer-015155.html"; 
     Matcher matcher = pattern.matcher(testString); 
     if (matcher.find()) { 
      System.out.println(matcher.group()); 
     } 
    } 
} 

результат выполнения: 2016/07/01/offer-015155

+0

Большое спасибо. Наверное, я не могу реализовать это в инструменте JMeter. Разве это не так? – user3680022

+0

Возможно, вы можете использовать только регулярное выражение в JMeter: (\\ d {4}/\\ d {2}/\\ d {2}/offer - \\ d +) – xSAVIKx

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