Что поддержка там для PCRE (Perl Совместимые Регулярные выражения) в общих языках?

На *nix's, возможно, с помощью групп процесса может выручить Вас - можно поймать подпроцессы, порожденные подпроцессами также.

if __name__ == "__main__":
  os.setpgrp() # create new process group, become its leader
  try:
    # some code
  finally:
    os.killpg(0, signal.SIGKILL) # kill all processes in my group

Другое соображение должно нарастить сигналы: от SIGTERM (сигнал по умолчанию для kill) к SIGKILL (иначе kill -9). Ожидайте короткое время между сигналами дать процессу шанс выйти чисто перед Вами kill -9 это.

8
задан peter.murray.rust 19 September 2009 в 09:22
поделиться

1 ответ

Похоже, что более распространенные языки фактически используют свою собственную реализацию регулярных выражений, подобных Perl, чем фактически используют libpcre. Языки, которые попадают в этот класс, включают (как минимум) Java, JavaScript и Python.

Библиотека Java java.util.regex использует синтаксис, в значительной степени основанный на Perl (приблизительно версия 5.8 ) регулярные выражения, включая правила экранирования, классы Unicode \ p и \ P , нежадные и «притяжательные» квантификаторы, обратные ссылки, \ Q . . \ E цитирование и несколько конструкций (? ...) , включая группы без захвата, группы просмотра вперед / назад нулевой ширины и группы без возврата. На самом деле регулярные выражения Java, похоже, имеют больше общего с регулярными выражениями Perl, чем libpcre. : )

В языке JavaScript также используются регулярные выражения, производные от Perl; Классы Unicode, lookbehind, притяжательные квантификаторы и группы без возврата отсутствуют, но остальная часть того, что я упомянул для Java, также присутствует в JS.

Синтаксис регулярных выражений Python также основан на Perl 5 с не жадными квантификаторами , большинство конструкций (? ...) , включая группы без захвата, предварительный / последующий и условные шаблоны, а также именованные группы захвата (но с другим синтаксисом, чем Perl или PCRE) . Группы без возврата и «притяжательные» кванторы отсутствуют (насколько я понимаю), как и \ p и \ P классы символов Unicode, хотя стандартный \ Классы d , \ s и \ w поддерживают Unicode, если требуется.

Классы Unicode, lookbehind, притяжательные квантификаторы и группы без возврата отсутствуют, но остальная часть того, что я упомянул для Java, также присутствует в JS.

Синтаксис регулярных выражений Python также основан на Perl 5 с не жадными квантификаторами , большинство конструкций (? ...) , включая группы без захвата, предварительный просмотр и условные шаблоны, а также именованные группы захвата (но с другим синтаксисом, чем Perl или PCRE) . Группы без возврата и «притяжательные» кванторы отсутствуют (насколько я понимаю), как и \ p и \ P классы символов Unicode, хотя стандартный \ Классы d , \ s и \ w поддерживают Unicode, если требуется.

Классы Unicode, lookbehind, притяжательные квантификаторы и группы без возврата отсутствуют, но остальная часть того, что я упомянул для Java, также присутствует в JS.

Синтаксис регулярных выражений Python также основан на Perl 5, с нежадными квантификаторами , большинство конструкций (? ...) , включая группы без захвата, предварительный / последующий и условные шаблоны, а также именованные группы захвата (но с другим синтаксисом, чем Perl или PCRE) . Группы без возврата и «притяжательные» кванторы отсутствуют (насколько я понимаю), как и классы символов Юникода \ p и \ P , хотя стандартный \ Классы d , \ s и \ w поддерживают Unicode, если требуется.

и группы без возврата отсутствуют, но остальная часть того, что я упомянул для Java, также присутствует в JS.

Синтаксис регулярных выражений Python также основан на Perl 5 с не жадными квантификаторами, большая часть ( ? ...) конструкции, включая группы без захвата, упреждающие / отстающие и условные шаблоны, а также именованные группы захвата (но с другим синтаксисом, чем Perl или PCRE). Группы без возврата и «притяжательные» кванторы отсутствуют (насколько я понимаю), как и \ p и \ P классы символов Unicode, хотя стандартный \ Классы d , \ s и \ w поддерживают Unicode, если требуется.

и группы без возврата отсутствуют, но остальная часть того, что я упомянул для Java, также присутствует в JS.

Синтаксис регулярных выражений Python также основан на Perl 5, с не жадными квантификаторами, большая часть ( ? ...) конструкции, включая группы без захвата, предварительные / обратные и условные шаблоны, а также именованные группы захвата (но с другим синтаксисом, чем Perl или PCRE). Группы без возврата и «притяжательные» кванторы отсутствуют (насколько я понимаю), как и \ p и \ P классы символов Unicode, хотя стандартный \ Классы d , \ s и \ w поддерживают Unicode, если требуется.

s, с нежадными квантификаторами, большинство конструкций (? ...) , включая группы без захвата, упреждающие / обратные и условные шаблоны, а также именованные группы захвата (но с другими синтаксис, чем Perl или PCRE). Группы без возврата и «притяжательные» кванторы отсутствуют (насколько я понимаю), как и \ p и \ P классы символов Unicode, хотя стандартный \ Классы d , \ s и \ w поддерживают Unicode, если требуется.

s, с нежадными квантификаторами, большинство конструкций (? ...) , включая группы без захвата, упреждающие / обратные и условные шаблоны, а также именованные группы захвата (но с другими синтаксис, чем Perl или PCRE). Группы без возврата и «притяжательные» кванторы отсутствуют (насколько я понимаю), как и \ p и \ P классы символов Unicode, хотя стандартный \ Классы d , \ s и \ w поддерживают Unicode, если требуется.

10
ответ дан 5 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: