您好,我想删除数据文件中的一些分号,如下所示:
a;bfcse;g
g;qdq;d;u
q;g;sd;;o
c;dd;ea;b
w;;rz;z;m
我想使用正则表达式进行此操作(因为我尝试选择一列并进行替换,但是它不起作用,因此记事本中的按钮为灰色,无法在我的选择中进行替换):
a;bfcse;g
g;qdqd;u
q;gsd;o
c;ddea;b
w;rzz;m
我认为可以像子字符串一样工作,但是使用notepad ++和sublimetext很难...
你有什么想法吗?
非常感谢您!
编辑:但是我认为很明显我想做的是在该区域中什么都不要删除半冒号:
-------
a;|bfcse|;g
g;|qdq;d|;u
q;|g;sd;|;o
c;|dd;ea|;b
w;|;rz;z|;m
-------
答案 0 :(得分:1)
使用记事本++
(^.+?;|\G)(.*?);?(?=.*?;.+?$)
$1$2
. matches newline
说明:
( # group 1
^ # beginning of line
.+? # 1 or more any character but newline, not greedy
; # a semicolon
| # OR
\G # restart from last match position
) # end group 1
(.*?) # group 2, 0 or more any character but newline, not greedy
;? # optional semicolon
(?= # start lookahead, make sure we have after:
.*? # 0 or more any character but newline, not greedy
; # a semicolon
.+? # 1 or more any character but newline, not greedy
$ # end of line
) # end of lookahead
替换:
$1 # content of group 1
$2 # content of group 2
给定示例的结果
a;bfcse;g
g;qdqd;u
q;gsd;o
c;ddea;b
w;rzz;m
答案 1 :(得分:0)
我将创建一个新变量,并添加所有非分号的内容,如下所示:
nosemicolons = ('')
somesemicolons = (''' -------
a;|bfcse|;g
g;|qdq;d|;u
q;|g;sd;|;o
c;|dd;ea|;b
w;|;rz;z|;m
-------''')
while len(somesemicolons) != 0:
if somesemicolons[:1] != ';':
nosemicolons = nosemicolons + somesemicolons[:1]
somesemicolons = somesemicolons[1:]
else:
somesemicolons = somesemicolons[1:] #placeholder
print(nosemicolons)
哪个输出:
-------
a|bfcse|g
g|qdqd|u
q|gsd|o
c|ddea|b
w|rzz|m
-------
可悲的是,它看起来不像一张桌子。您可以对其进行更改,使其在输出中添加'',而不添加任何内容(请参见占位符)。希望有帮助。