簡體   English   中英

REGEX python查找上一個字符串

[英]REGEX python find previous string

我正在嘗試查找字符串的最后一個單詞是否后跟空格或特殊字符,如果是,則返回不包含該空格/特殊字符的字符串

例如 :

"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)

它在最后一個示例中有效,但在前兩個示例中無效(它保留了第二個示例的空間),我不知道如何處理。

編輯:特殊字符為:'。','!','?','(','[',','首先,然后除那些以外的所有其他非數字/字母

如果要使用正則表達式從這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中,則返回false。

更新了Regex101示例

r"(.*[\w])([^\w]+)"

或者(沒有第二個捕獲組):

Regex101示例-沒有第二個捕獲組

r"(.*[\w])(?:[^\w]+)"

那就是您要找的東西嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM