Слэш в регулярном выражении в Голанге - PullRequest
2 голосов
/ 17 мая 2019

У меня есть две ссылки:

1: /aaa/bbbb/ccccc.htm
2: /xxx/yyy.htm

Какое регулярное выражение может соответствовать второй ссылке?

Я пробовал:

^\/.*\/.*[^\/].* 

Но, это соответствуетвсе они.

1 Ответ

2 голосов
/ 17 мая 2019

Я предполагаю, что мы могли бы пропустить оба URL, которые в этом случае мы начнем с:

(\/[a-z]+)?(?:\.htm)?

Затем мы можем добавить больше границ, если хотите.

RegEx

Если это не было вашим желаемым выражением, вы можете изменить / изменить выражения в regex101.com .

enter image description here

RegEx Circuit

jex.im визуализирует регулярные выражения:

enter image description here

Разбивка группы JavaScript

const regex = /((\/[a-z]+)?(?:\.htm)?)/gm;
const str = `/aaa/bbbb/ccccc.htm
/xxx/yyy.htm`;
const subst = `Group #1: $1\nGroup #2: $2\n`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);

Если вы хотите пропустить второй URL-адрес и пропустить первый, вы можете просто добавить некоторые границы в ваше выражение, возможно, что-то похожее на , это будет работать:

^\/[a-z]+\/[a-z]+.htm$

enter image description here

...