Сложные Regex Javascript дубликаты заменяют - PullRequest
2 голосов
/ 27 августа 2010

Я надеюсь, что кто-то может мне помочь. Мне нужно создать регулярное выражение, которое удалит все дубликаты из входного файла - я создаю сценарий ftp.exe для загрузки файлов и не хочу дубликатов в команде execute.

Вот краткий пример сценария: в файле может быть до 20 или более одинаковых дубликатов ...

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

    (mkdir /breeds
    cd /breeds
    mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/breeds/*.*
    )
(mkdir /breeds
    cd /breeds
    mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/breeds/*.*
    )
(cd /
    mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/*.*
    )
(cd /
    mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/*.*
    )

Как мне написать javascript regex.match, чтобы указать дубликаты значений.

Ответы [ 2 ]

1 голос
/ 27 августа 2010

Один из способов сделать это - объединить каждую «группу» в одну строку (например, разделить команды точками с запятой), затем использовать unix | sort | uniq, чтобы удалить повторяющиеся строки, а затем снова разделить строки вверх.

0 голосов
/ 27 августа 2010

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

Рассмотрим:

mkdir /breeds
cd /breeds
mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/breeds/*.*

и

mkdir /breeds
cd /breeds
mput C:\Inetpub\wwwroot\site.co.za/admin/buckets\application\sites\site_-_org/*.*

Создает ли это дубликат? Являются ли первые две строки каждой копии дубликатами или должна соответствовать вся группа (но в таком случае как определяется группа?).

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

Например, вы можете разбить свой ввод на строки массива, а затем двукратно пройти по этому массиву, ища группы эквивалентных строк (но даже тогда вам нужно будет определить некоторые правила, например, какое минимальное число строк Форма группы есть).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...