Как заменить скобки в начале строки в textpad

Я знаю, что символ ^ находит символ в начале строки, но мне нужно удалить левые круглые скобки в начале многих строк. Когда я пытаюсь выполнить замену, я получаю следующую ошибку:

Unmatched marking parenthesis ( or \(. The error occurred while parsing the regular expression: '^(>>>HERE>>>'.

Каков правильный синтаксис при поиске символа ( в начале строки?


person Skip    schedule 29.01.2015    source источник


Ответы (2)


Вам нужно экранировать скобку косой чертой, \(

person Mathletics    schedule 29.01.2015
comment
Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его публикацией. - person Cyclonecode; 30.01.2015
comment
@Cyclone, может быть, я просто устал, но похоже, что OP получает ошибку при поиске из-за открытого парного слова; они должны исправить это, экранировав его косой чертой, чтобы получить буквальное (. Что мне не хватает? - person Mathletics; 30.01.2015
comment
@DanielHaley хорошо, но у ОП уже есть якорь; им просто нужно избежать скобки. - person Mathletics; 30.01.2015

Регулярное выражение Textpad довольно неприятно, когда вам нужно сопоставить круглые скобки, так как и (-), и \(-\) образуют совпадающие группы. (В очень старых версиях Textpad в качестве маркеров захвата использовались только \(-\), поскольку круглые скобки без косой черты не были «особыми».)

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

at java.util.Formatter.format(Formatter.java:2455)
at java.lang.String.format(String.java:2940)
at day11$boardWrapper.toString(day11.java:85)

При запуске кода через Textpad вам нужно регулярное выражение, чтобы поймать имя файла и номер строки. Шаблон ниже фиксирует те, что находятся в \1 и \2 соответственно, что позволяет мне настроить инструмент, чтобы я мог перейти прямо к проблемной строке.

at.+[(]([^:]+):([0-9]+)[)]
at.+                         offending function name
    [(]                      (
       (     )               capturing group 1
        [^:]+                anything not a colon (i.e., the filename)
              :              colon
               (      )      capturing group 2
                [0-9]+       digits (line number)
                       [)]   )
person Einstein X. Mystery    schedule 09.02.2017