我试图查找字符串的最后一个单词后跟空格或特殊字符,如果是,则返回没有此空格/特殊字符的字符串
例如:
"do you love dogs ?" ==> return "do you love dogs"
"i love my dog " (space after dog) ==> return "i love my dog"
"do you love dogs?" ==> return "do you love dogs"
到目前为止,我试过了:
re.search(re.compile(r"^[^\,\(\[\.\!\?]*"), mystring)
它适用于最后一个示例,但不是前两个示例(它保留了第二个示例的空间),我不知道如何处理它。
编辑:特殊字符是:'。','!','?','(', ' [',','起初然后每隔一个非数字/字母除外
答案 0 :(得分:0)
如果你想从这3个句子的末尾删除空格和特殊字符,使用正则表达式,这是你可以做到的一种方法:
import re
print re.findall(r'\w+\s\w+\s\w+\s\w+', "i love my dog ")
print re.findall(r'\w+\s\w+\s\w+\s\w+', "do you love dogs ?")
print re.findall(r'\w+\s\w+\s\w+\s\w+', "do you love dogs?")
输出:
['i love my dog']
['do you love dogs']
['do you love dogs']
答案 1 :(得分:-1)
更新:这将检查是否存在一个句子,后跟特殊字符。如果没有特殊字符,则返回false,并且您的原始句子位于捕获组1中。
r"(.*[\w])([^\w]+)"
或者(没有第二个捕获组):
Regex101 Example - no second capture group
r"(.*[\w])(?:[^\w]+)"
这就是你正在寻找的东西吗?