我需要写一个程序,它将一个段落分割成句子,并在逗号、标点符号和括号的前后添加空格。但是,如果它的名称类似d-(-lactic)−acid,我就不会插入空格。这就是我到目前为止所知道的:
import re
import string
message = input("Enter a file name: ")
hand = open(message)
x = re.findall('\S+\(\S+', line.rstrip())
y = ''.join(x)
for line in hand:
fp = re.sub('(?<! )(?=[.,!?()])|(?<=[.,!?()])(?! )', r' ', line)
sentences = re.split(r' *[\.\?!][\'"\)\]]* *', fp)
if y in line:
pass
else:
fp = re.sub('(?<! )(?=[.,!?()])|(?<=[.,!?()])(?! )', r' ', sentences)
sentences = re.split(r' *[\.\?!][\'"\)\]]* *', fp)
print(*sentences, sep="\n")
我不确定如何解释与d-(-)-lactic acid相似的名称。
编辑:示例文本如下:
在Jurkat细胞和正常植物血凝素扩增的T淋巴母细胞中,发现CD5与含有造血磷酸化酪氨酸磷酸酶-1的Src同源2 (SH2)结构域相关。SATB1还将ACF1和ISWI (染色质可及复合物和ACF核小体动员复合物的亚单位)靶向于该位点,并共同调节7个kilobases.Taken上的Ras受体定位。这些结果表明,AF-6上的Ras相互作用区域在结构上与Raf-1和RalGDS上的相似,并且AF-6在体内与活化的Ras和L-(+)-Tartaric酸相互作用。
所以我在这里遇到的问题是L-(+)-Tartaric酸。在这个术语中不应该插入空格。
发布于 2019-11-25 20:56:36
尝试使用此代码在圆括号前后添加空格:
import re
import string
message = input("Enter a file name: ")
hand = open(message)
txt=hand.read()
sentences = re.split(r' *[\.][\'"\)\]]* *', txt)
for stuff in sentences:
x = re.search('^\w+([-]?\w+)*\w+([\.()-]?\w+)*\w+([-]?\w+)+$',stuff)
if x:
print(x)
else:
stuff = re.sub('([.,!?()])', r' \1 ', stuff)
stuff = re.sub('\txt{2,}', ' ', stuff)
print(stuff)
https://stackoverflow.com/questions/59026076
复制相似问题