Regex НЕ или исключают матч

Как я заставляю regex соответствовать и исключить определенный характер. Например, я делаю regex для матча TDL всей страны.

[a-z]{1,}((?!.ru)|.kr|.lt|.cn|.uk|.id|)

или

[a-z]{1,}.([a-z]{1,})

gsdfg.ru <- This shall match

sgkjsr.us <- only .us should not match or should excluded

0
nl ja de
@SergiuDumitriu - Я хочу целый текст, отклоненный, если это - .us TDL., и примите весь текст кроме .us
добавлено автор Kapish M, источник
@SergiuDumitriu - Я хочу целый текст, отклоненный, если это - .us TDL., и примите весь текст кроме .us
добавлено автор Kapish M, источник
@SergiuDumitriu - Я хочу целый текст, отклоненный, если это - .us TDL., и примите весь текст кроме .us
добавлено автор Kapish M, источник
так как вы перечисляете все окончания, возможно, просто не помещают его в соответствие группе?
добавлено автор VladL, источник
так как вы перечисляете все окончания, возможно, просто не помещают его в соответствие группе?
добавлено автор VladL, источник
It' s не ясный из текста, на sgkjsr.us вы хотите, чтобы целая последовательность была отклонена, или вы хотите захватить, просто sgkjsr , исключая .us суффикс, в то время как на gsdfg.ru целая последовательность должна быть захвачена как матч?
добавлено автор Sergiu Dumitriu, источник
It' s не ясный из текста, на sgkjsr.us вы хотите, чтобы целая последовательность была отклонена, или вы хотите захватить, просто sgkjsr , исключая .us суффикс, в то время как на gsdfg.ru целая последовательность должна быть захвачена как матч?
добавлено автор Sergiu Dumitriu, источник
It' s не ясный из текста, на sgkjsr.us вы хотите, чтобы целая последовательность была отклонена, или вы хотите захватить, просто sgkjsr , исключая .us суффикс, в то время как на gsdfg.ru целая последовательность должна быть захвачена как матч?
добавлено автор Sergiu Dumitriu, источник
Вы хотите соответствовать, просто .tld или целое domain.tld ?
добавлено автор Sergiu Dumitriu, источник
Вы хотите соответствовать, просто .tld или целое domain.tld ?
добавлено автор Sergiu Dumitriu, источник
Вы хотите соответствовать, просто .tld или целое domain.tld ?
добавлено автор Sergiu Dumitriu, источник
Листинг всех их (несколько сотен, но выполнимый при помощи петли) является одним возможным решением. Это позволит вам соответствовать только стране TLD, не позволяя другие вещи, которым вы не можете хотеть соответствовать.
добавлено автор nhahtdh, источник
Листинг всех их (несколько сотен, но выполнимый при помощи петли) является одним возможным решением. Это позволит вам соответствовать только стране TLD, не позволяя другие вещи, которым вы не можете хотеть соответствовать.
добавлено автор nhahtdh, источник
Ради краткости и удобочитаемости, {1} (один или несколько из) может быть сокращен, чтобы + , если у cc tlds есть 2 случайных работы в них, необходимо использовать [a-z] {2} для них. Также точка может быть учтена из всех sub образцов: '\. ([a-z] {2})
добавлено автор arielf, источник

3 ответы

Это должно работать (помещая в черный список):

\.(?!us|eu)[a-z]{2}$

Это ищет точку ( \. ), который не сопровождается нас или eu ( (?! us|eu) ), и сопровождается двумя строчными буквами ( [a-z] {2} ), прямо в конце последовательности ( $ ).

Это должно также работать (добавляя в белый список):

\.(?:ru|kr|cn|uk|id)$

Это ищет точку ( \. ), который сопровождается одним из рутений , kr ... или id , прямо в конце последовательности ( $ ). Я использовал (?:...) вместо простого (...) так, чтобы группа не создавала захват. Если на самом деле необходимо захватить код страны для более позднего пользователя, не стесняйтесь удалять ?: часть.

3
добавлено
([a-z] {3, }\\. (?! us|com) [a-z] {2}) кажется выполнению работы. Спасибо! +1
добавлено автор Kapish M, источник
Позвольте мне попробовать это..
добавлено автор Kapish M, источник
You' приветствие ре. Don' t забывают отмечать ответ, как принято.
добавлено автор Sergiu Dumitriu, источник

Это должно работать (помещая в черный список):

\.(?!us|eu)[a-z]{2}$

Это ищет точку ( \. ), который не сопровождается нас или eu ( (?! us|eu) ), и сопровождается двумя строчными буквами ( [a-z] {2} ), прямо в конце последовательности ( $ ).

Это должно также работать (добавляя в белый список):

\.(?:ru|kr|cn|uk|id)$

Это ищет точку ( \. ), который сопровождается одним из рутений , kr ... или id , прямо в конце последовательности ( $ ). Я использовал (?:...) вместо простого (...) так, чтобы группа не создавала захват. Если на самом деле необходимо захватить код страны для более позднего пользователя, не стесняйтесь удалять ?: часть.

3
добавлено
([a-z] {3, }\\. (?! us|com) [a-z] {2}) кажется выполнению работы. Спасибо! +1
добавлено автор Kapish M, источник
Позвольте мне попробовать это..
добавлено автор Kapish M, источник
You' приветствие ре. Don' t забывают отмечать ответ, как принято.
добавлено автор Sergiu Dumitriu, источник

Это должно работать (помещая в черный список):

\.(?!us|eu)[a-z]{2}$

Это ищет точку ( \. ), который не сопровождается нас или eu ( (?! us|eu) ), и сопровождается двумя строчными буквами ( [a-z] {2} ), прямо в конце последовательности ( $ ).

Это должно также работать (добавляя в белый список):

\.(?:ru|kr|cn|uk|id)$

Это ищет точку ( \. ), который сопровождается одним из рутений , kr ... или id , прямо в конце последовательности ( $ ). Я использовал (?:...) вместо простого (...) так, чтобы группа не создавала захват. Если на самом деле необходимо захватить код страны для более позднего пользователя, не стесняйтесь удалять ?: часть.

3
добавлено
([a-z] {3, }\\. (?! us|com) [a-z] {2}) кажется выполнению работы. Спасибо! +1
добавлено автор Kapish M, источник
Позвольте мне попробовать это..
добавлено автор Kapish M, источник
You' приветствие ре. Don' t забывают отмечать ответ, как принято.
добавлено автор Sergiu Dumitriu, источник