我试图使用re.finditer识别文本中句点(。)的错误使用。一个时期应该始终以空间结束是条件。在句点使用前使用空格不正确。
在下面的代码中,我能够找到句子之间的句点。但是,如果它出现在所有文本的末尾,则会失败。有人可以帮忙解决这个问题吗?
您可以改为编写一个为您找到“非法”期间的正则表达式,而不是检查所有句点周围的字符串:
pat = "(?<=\s)\.|\.(?=[^\s])" # A period with whitespace in front,
# or a period with nonwhitespace after
any(re.finditer(pat, sample))
any(re.finditer(pat, "aab."))
# False
any(re.finditer(pat, "aab"))
# False
any(re.finditer(pat, "aab ."))
# True
any(re.finditer(pat, "aab.a"))
# True