我有一个文件布局,我想删除括号内的数字以外的所有内容。布局的一个例子是:
C10438 03 EXT-OBLN-ASSN PIC X(05).
03 EXT-OWN-NAME PIC X(40).
我用过
(^[^\(]*)
将所有内容与开括号匹配。但是当我尝试
时(^[^\(\d{2}\)]*)
我只在行首开始得到空格,我不明白为什么!
答案 0 :(得分:3)
我假设你想在Notepad ++中实现它。
注意:(^[^\(\d{2}\)]*)
包含逻辑错误:\(\d{2}\)
应该是字符的序列(如(22)
),但会被放入< em>否定字符类其中每个符号(第一个^
除外)被视为单独的符号。因此,(^[^\(\d{2}\)]*)
会匹配并捕获不是(
,数字,{
,2
,}
,)
的所有内容。 ,从字符串/行的开头起零次或多次。
您需要一个匹配任何字符的正则表达式,从行首(.*
)到^
之后的任意数量的出现次数(
,然后是一个或多个数字(\d+
)然后跟)
以及任意数量的字符,但换行符。
使用
^.*\((\d+)\).*
并替换为$1
。
请参阅this demo
如果不适用于Notepad ++,请确保传递/m
MULTILINE修饰符,以便^
可以匹配行的开头,而不是整个字符串。
答案 1 :(得分:2)
答案 2 :(得分:2)