在python上从文本文件中删除字符串开头的空格
我有一个类似于吼叫的列表,需要拆分为前缀/根/后缀在python上从文本文件中删除字符串开头的空格,python,python-3.x,regex,removing-whitespace,Python,Python 3.x,Regex,Removing Whitespace,我有一个类似于吼叫的列表,需要拆分为前缀/根/后缀 Input form jalan ba-jalan pem-porut#an daun #kulu daun#kulu tarik-napas tarik#napas n-cium #bow arau/araw imbaw//nimbaw dengo | nengo dodop=am {di} dalam di {dalam} 我是通过python上的bellow正则表达式完成的: import sys sys.stdout = open(
Input
form
jalan
ba-jalan
pem-porut#an
daun #kulu
daun#kulu
tarik-napas
tarik#napas
n-cium #bow
arau/araw
imbaw//nimbaw
dengo | nengo
dodop=am
{di} dalam
di {dalam}
我是通过python上的bellow正则表达式完成的:
import sys
sys.stdout = open('final.txt', 'w')
import re
open('split.txt') as f:
new_split = [item.strip() for item in f.readlines()]
for word in new_split:
m = re.match(r"(?:\{[^-#={}/|]+\})?(?:([^-#={}/|]+)-)?([^-#={}/|]+)(?:/[^-#={}/|]+)?(?:[#=]([^-#={}/|]+))?", word)
if m:
print("\t".join([str(item) for item in m.groups()]))
else:
print("(no match: %s)" % word)
最终输出如下所示
None jalan None
ba jalan None
pem porut an
None daun kulu
None daun kulu
tarik napas None
None tarik napas
n cium bow
None arau None
None imbaw None
None dengo None
None dodop am
None dalam None
None di None
现在,正如您在输出文件底部的单词dalam中看到的,dalam之前有额外的空间,其他一些单词在字符串之前也有额外的空间。如何从final.txt文件中删除这些额外的空间?我可以在上面相同的脚本中执行,还是应该在单独的脚本中执行?谢谢。将lstrip()添加到字符串以删除前导空格
str(item).lstrip()
代码:
你期望的结果是什么?
import re
with open('split.txt') as w:
new_split = [item.strip() for item in w.readlines()]
for word in new_split:
m = re.match(r"(?:\{[^-#={}/|]+\})?(?:([^-#={}/|]+)-)?([^-#={}/|]+)(?:/[^-#={}/|]+)?(?:[#=]([^-#={}/|]+))?", word)
if m:
print("\t".join([str(item).lstrip() for item in m.groups()]))
else:
print("(no match: %s)" % word)