1

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

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

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

4

2 回答 2

1

你需要用斜杠转义括号,\(

于 2015-01-29T23:06:09.010 回答
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)
                       [)]   )
于 2017-02-09T08:05:25.230 回答