2017-08-16 14 views
0

UIの文字列「送信者のドメイン」を見つけるre.searchに問題があります。Pythonで一重引用符とスペースをエスケープするにはどうすればよいですか?

word_check1 = 'Senders' 
word_check2 = "Senders' Domains" 
page_check1, page_check2 = mymessages_page.page_checker(word_check1, word_check2, 'chart-content-container') 

ときに私のデバッグ、私のpage_checker方法は、 "ドメインが送信者// s" を見つけたが、その後(スペースを削除) "差出人// sDomains" を返しますre.search。

def page_checker(self, word_check1, word_check2, ids): 
    container = self.driver.find_element_by_id(ids) 
    content = container.text 
    organized_container_content = content.split('\n') 
    for text in organized_container_content: 
     if re.search(word_check1, text): 
      check1 = text 
      for text2 in organized_container_content: 
       if re.search(word_check2, text2): 
        check2 = text2 
        return check1, check2 
        break 

「私は見つけると、文字列 『送信者と一致することができるようにし、空白文字私のUI上のドメイン』私は単一引用符()をエスケープすることができます方法はありますか?

+0

一重引用符とスペースは特別な正規表現の文字ではありません。正確な問題を示すために[mcve]を作成できますか? –

+2

単純な 'word_check1 in text'の代わりに' re.search(word_check1、text) 'を使うべき理由はありますか? – Andersson

+0

Pythonで(バックスラッシュと一重引用符)または二重引用符をエスケープする方法](https://stackoverflow.com/questions/6717435/how-to-escape-a-backslash-and-a-)一引用または二重引用符で - パイソン) – JeffC

答えて

1

エスケープ文字 '\'を試しましたか? https://docs.python.org/2.0/ref/strings.html

>>> word_check2 = "Senders\' Domains" 
>>> print (word_check2) 
Senders' Domains 
>>> 
+1

あなたは関係なく、あなたのケースでエスケープせずに動作しませんか? – Mangohero1

+0

ありがとう、これは働いて、私が見つけたテキストにマッチするのを助けました。 @ mangoHero1も正しいです。エスケープせずにもう一度試してみましたが、うまくいきました。そのため、re.searchの仕組みを誤解していたのが一部でした。 – Golshy

+0

うーん、それはうまく働いた。あなたの質問に基づいて全部推測していた。私は新しく、ただ今、私はコメントを追加することもできます、私は本当にばかだと思う "答え"することができます。 –

関連する問題