Помогите с регулярным выражением

  • Автор темы Saintqaaa
  • Обновлено
  • 13, May 2024
  • #1
Всем привет Может кто-нибудь указать мне в правильном направлении здесь.. Я хочу создать регулярное выражение, которое сможет сортировать доменные имена по их буквенному составу.

Я хочу создать две версии. Один для западных премиум-букв и один для китайских премиум-букв. Западный предполагает удаление любого домена, содержащего любую из этих букв:
J, K, Q, U, V, W, X, Y или З Китайский предполагает удаление любого домена, содержащего любую из этих букв:
А, Э, И, О, У, В Я немного растерян. Я попробовал это для западного: (\^JKQUVWXYZ)(\^JKQUVWXYZ)(\^JKQUVWXYZ)(\^JKQUVWXYZ)\.com Предполагается фильтровать домены LLLL.com. Может ли кто-нибудь дать мне указатель?

Напишите мне в личку, если знаете, как это сделать. Возможно, я смогу наградить вас чем-нибудь за вашу помощь.

Saintqaaa


Рег
18 Feb, 2013

Тем
63

Постов
193

Баллов
548
  • 18, May 2024
  • #2
Хорошо, я не смог заставить это работать точно.

Я использую DRT, я могу ввести только одну строку кода в выражение, а затем оно запускает его в список, который я вставляю в DRT.

Примеры рабочего кода в DRT:

Образец: заканчивается дешево или бесплатно

(дешево|бесплатно)\.

Пример: LNLN.tld

^(\Д\д\Д\д)\.

Пример: NNNN.tld

^(\d){4,4}\.

Пример: есть .Mobi

()\.mobi

Итак, часть примера, о которой заботится DRT, мне нужно выражение, которое будет фильтровать определенные критерии.

Например, отсутствие определенных букв.
 

Nambelabs


Рег
28 Oct, 2012

Тем
76

Постов
203

Баллов
603
  • 04, Jun 2024
  • #3
Конечно. Спасибо, что вмешались.. Давайте сначала возьмем западный премиум-домен из 4 букв .com. Я хочу нет:"J, K, Q, U, V, W, X, Y или З" в любом из 4 положений. Это означает, что эти домены хороши и должны быть в списке: abcd.com glol.com rrtt.com Это нехорошо, и их следует отсортировать с помощью регулярного выражения: jqua.com abcz.com uola.com
 

TEMIKgt1


Рег
20 Jul, 2014

Тем
56

Постов
207

Баллов
507
  • 05, Jun 2024
  • #4
Это работает, и если вы хотите, чтобы он соответствовал китайскому, просто поменяйте местами буквы:

 
<?php
$domains = ['abcd.com','glol.com','rrtt.com','jqua.com','abcz.com','uola.com'];
foreach ($domains as $key => $value) {
 $subject = explode('.',$value);
 if (preg_match('/([jkquvwxyz]+)/i',$subject[0],$matches) == false) {
 echo $value.'<br>';
 }
}
?>


PHP: Здесь используется массив и foreach, но вы, конечно, можете поместить это в любую функцию, просто убрав все, что не работает - важным моментом является разнесение домена (чтобы избавиться от TLD) и сам preg_match
 

Opicizsiphisy


Рег
21 Nov, 2012

Тем
63

Постов
199

Баллов
524
  • 07, Jun 2024
  • #5
Popsicle в настоящее время пробует свои силы в работе над кодом самого программного обеспечения. Я использую:
Инструмент исследования предметной области — Lezon Inc.

Фильтрация доменов с помощью регулярных выражений
Новейшим дополнением к DRT является функция, которая позволяет использовать регулярные выражения в формате .NET (RegEx) для фильтрации списков доменов.

Регулярные выражения допускают практически неограниченную настройку при фильтрации ключевых слов.

Например, вы можете фильтровать домены, содержащие LLL.tld, NNN.tld, NLN.tld, начинающиеся с i или e, содержащие слово «test» в качестве третьего символа и многое другое. Эта функция доступна на вкладке «Параметры->Настройки фильтра->Дополнительные настройки ключевых слов».

Регулярное выражение — это специальная текстовая строка, описывающая шаблон поиска.

Хотя синтаксис и использование регулярных выражений выходят за рамки этого файла справки (регулярные выражения могут быть очень сложными или очень простыми, в зависимости от ваших потребностей), мы объясним очень простой синтаксис регулярных выражений и настоятельно рекомендуем вам оформить заказ.

Google

, или RegEx приятель

для получения дополнительной помощи.

Примеры команд сопоставления:

^ = совпадение должно существовать в начале строки, например: ^(e) будет соответствовать любому домену, который начинается с буквы e

$ = совпадение должно существовать в конце строки, например: (e)$ будет соответствовать любому домену, который заканчивается на букву e, но помните, что домены всегда заканчиваются расширением.

| = или условно, например: (дешево|бесплатно|доступно) будет соответствовать любому домену, который содержит слова дешево, бесплатно или доступно (обратите внимание, без пробелов)

. = любой символ, например: (gr.y) будет соответствовать Gray.com, grey.com, grzy.com, но не gry.com

(дешево|бесплатно)\. = домен должен заканчиваться на «дешево» или «бесплатно» (замечено, что мы убрали точку с помощью \.)

Более подробную информацию о регулярных выражениях можно найти по ссылке ниже:

http://www.regular-expressions.info/quickstart.html

Как работает D.R.T. соответствовать регулярным выражениям? Когда сопоставление регулярных выражений включено, инструмент исследования предметной области перебирает все «включенные» регулярные выражения и пытается сопоставить текущий домен (вставленный или загруженный из файла) с регулярным выражением.

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

В среднем файл, содержащий 100 000 доменов, будет загружаться на 2 секунды медленнее при использовании двух правил регулярных выражений.
Зачем использовать регулярные выражения? Регулярные выражения обеспечивают чрезвычайно гибкое сопоставление с образцом.

Вы можете настроить регулярное выражение так, чтобы оно соответствовало как одному правилу, так и сложному набору из десятков правил (например: домен длиной не более 10 символов, содержит только буквы, имеет третью букву «z», содержит a,e ,я,о,вы все в одном правиле).
Есть ли генератор регулярных выражений? Мы используем инструмент под названием RegEx приятель

(без принадлежности). Он не бесплатный, но отлично справляется с созданием и тестированием регулярных выражений.
 

Andrey7771


Рег
28 Dec, 2015

Тем
74

Постов
188

Баллов
558
  • 08, Jun 2024
  • #6
Ага... Попробуйте просто указать список символов в () - что-то вроде: (jkquvwxyz)\.com или (\jkquvwxyz)\.com Символ ^ в начале выражения указывает ему, что нужно искать с самого начала, так что ты, вероятно, захочешь это оставить
 

Cashtraffic1


Рег
24 Apr, 2012

Тем
76

Постов
204

Баллов
584
  • 09, Jun 2024
  • #7
Не могли бы вы привести пример некоторых доменов, которые вы бы разрешили, а некоторые нет? Хотите ли вы отфильтровать все, что содержит ЛЮБЫЕ буквы, или только те, которые содержат буквы определенного шаблона (например, 4 «запрещенные» буквы подряд)?
 

MadSkipper


Рег
11 Oct, 2013

Тем
68

Постов
192

Баллов
552
  • 09, Jun 2024
  • #8
Первый был принят программой проверки ошибок. Второй не был (мне сказали, что он должен соответствовать выражениям .net). К сожалению, в настоящее время первый по какой-то причине отфильтровывает все имена.
 

Hocopor


Рег
11 Jul, 2014

Тем
78

Постов
190

Баллов
590
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно