如何在textpad中的行开头替换括号

时间:2015-01-29 22:59:47

标签: regex textpad

我知道字符^在一行的开头找到一个字符,但我需要删除多行开头的左括号。当我尝试进行替换时,收到以下错误:

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

在一行开头搜索字符(时的正确语法是什么?

2 个答案:

答案 0 :(得分:0)

您需要使用斜杠\(

来转义括号

答案 1 :(得分:0)

当您需要匹配括号时,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)
                       [)]   )