Regex 将匹配除what';括号中的s
我有一个文件布局,我想删除除括号内数字以外的所有内容。布局的一个示例是:Regex 将匹配除what';括号中的s,regex,Regex,我有一个文件布局,我想删除除括号内数字以外的所有内容。布局的一个示例是: C10438 03 EXT-OBLN-ASSN PIC X(05). 03 EXT-OWN-NAME PIC X(40). 我曾经 (^[^\(]*) 将所有内容匹配到开括号。然而当我尝试 (^[^\(\d{2}\)]*) 我只在一行的开头得到了空格,我不知道为什么 使用此模式 .*?(\(\d\d\))|.* 并替换为w/$1
C10438 03 EXT-OBLN-ASSN PIC X(05).
03 EXT-OWN-NAME PIC X(40).
我曾经
(^[^\(]*)
将所有内容匹配到开括号。然而当我尝试
(^[^\(\d{2}\)]*)
我只在一行的开头得到了空格,我不知道为什么 使用此模式
.*?(\(\d\d\))|.*
并替换为w/$1
或者也可以使用此模式删除括号
.*?\((\d\d)\)|.*
最简单的方法是:
\(\p{N}+\)
这将捕获任何括号(
\(
和\)
)和其中任何数字(\p{N}+
)。我假设您希望在记事本++中实现这一点
注意:(^[^\(\d{2}\)]*)
包含一个逻辑错误:\(\d{2}\)
应该是一个字符序列(如(22)
),但被放入一个否定字符类中,其中每个符号(除第一个^
)都被视为一个单独的符号。因此,(^[^\(\d{2}\)]*)
匹配并捕获到一个组中所有不是(
,一个数字,{
,}
,)
,从字符串/行的开始,零次或多次
您需要一个正则表达式,该正则表达式将匹配任何字符、从行首(^
)到(
后跟一个或多个数字(\d+
)的任何出现次数(*
)以及除换行以外的任何数量的字符
使用
并替换为$1
看
如果不是Notepad++,请确保传递
/m
多行修饰符,以便^
可以匹配一行的开头,而不是整个字符串。Unicode类别类在某些正则表达式中不可用。您尝试的部分问题是方括号之间的内容。这些是字符类的文字字符。
^.*\((\d+)\).*