import re
input_text = "((NOUN) ) ) de el auto rojizo, algo) ) )\n Luego ((PL_ADVB)dentro ((NOUN)de baúl ))abajo.) )."
input_text = input_text.replace(" )", ") ")
print(repr(input_text))
简单地使用.replace(" )", ") ")
函数,我会得到这个糟糕的输出,因为它没有考虑使用regex模式的函数可能会进行的条件替换,例如使用re.sub( , ,input_text, flags = re.IGNORECASE)
'((NOUN)) ) de el auto rojizo, algo)) ) \n Luego ((PL_ADVB)dentro ((NOUN)de baúl) )abajo.)) .'
目标是得到这样的输出,其中,只要右括号)
不在点.
、换行符\n
或行尾$
之前,就去掉右括号中的前导空格,并在其后添加一个空格
'((NOUN))) de el auto rojizo, algo)))\n Luego ((PL_ADVB)dentro ((NOUN)de baúl))abajo.)).'
2条答案
按热度按时间ghhkc1vu1#
试试这个句型应该能解出来
/(\s*)())(\s*)(?=[^\s])/克
此模式将匹配后跟非空白字符的")“,并删除")”前后的所有空格。
如果要在")“周围添加空格而不是删除空格,可以按如下方式修改模式:
/(\s*)())(\s*)(?=[^\s])/克
ruarlubt2#
只需使用以下简单的正则表达式去掉
)
前面的空格: