我基本上是从文件中解析数据。在我的代码中的某个时刻,我根据空格字符分割文件的每一行 - > str.split(“”)。我需要的是一种分离字符串中可能出现的任何标点符号的方法。
当我说puncutation时,我指的是
返回的任何字符import string
print (string.punctuation)
谢谢!
答案 0 :(得分:3)
我会使用正则表达式:
>>> re.split(r'(\W)', 'This is a sentence. This is another sentence.')
['This',
' ',
'is',
' ',
'a',
' ',
'sentence',
'.',
'',
' ',
'This',
' ',
'is',
' ',
'another',
' ',
'sentence',
'.',
'']
您可以浏览结果列表,更改单词,然后''.join()
将其重新标记为在相同位置使用相同标点符号的句子。
答案 1 :(得分:0)
只是坚持原件会更容易,不是吗?将标点符号放回去的最终目标是什么?如果你只是要重建整条生产线,为什么不把它放在第一位呢?
pattern = '['+''.join(string.punctuation)+']+' # Make a char set in regex syntax
for line in file:
tokens = line.split(' ')
for token in tokens:
parsed = parse_token(re.sub(pattern, token))
# Now do whatever else you might need to do with token and parsed.
# Remember, you still have access to the `line` string and `tokens` list!
def parse_token(token):
pass # Do whatever you need to do with your "clean" token here.