2017-01-07 18 views
0

В Python 2.7 я пытаюсь следующее:Substring [целое слово] проверить с помощью строки переменной

>>> import re 
>>> text='0.0.0.0/0 172.36.128.214' 
>>> far_end_ip="172.36.128.214" 
>>> 
>>> 
>>> chk=re.search(r"\b172.36.128.214\b",text) 
>>> chk 
<_sre.SRE_Match object at 0x0000000002349578> 
>>> chk=re.search(r"\b172.36.128.21\b",text) 
>>> chk 
>>> chk=re.search(r"\b"+far_end_ip+"\b",text) 
>>> 
>>> chk 
>>> 

Q: Как я могу сделать поисковую работу при использовании переменной far_end_ip

ответ

1

Две проблемы :

  • Вы должны написать последнюю часть строки как регулярное выражение буквальным или обратный слеш: ... + r"\b"
  • Вы должны избежать точек в тексте найти: ... + re.escape(far_end_ip)

Итак:

re.search(r"\b" + re.escape(far_end_ip) + r"\b",text) 

Смотрите также "How to use a variable inside a regular expression?".