2013-09-14 3 views
0

Я пытаюсь выяснить, содержит ли строка [city.----] и где находится , любой город может быть там. Я просто хочу убедиться, что он отформатирован правильно. Я искал, как я могу попросить Python игнорировать этот , но не повезло. Вот пример того, как я хотел бы использовать это в коде:Python - Строка содержит определенную строку в скобках?

if "[city.----]" in mystring: 
    print 'success' 
+0

Итак, вы ищете [город. <Любые символы разрешены здесь]]? – kender

+0

Попробуйте использовать регулярное выражение. – Aleph

+0

'mystring.startswith ('[city.') И mystring.endswith (']')' – falsetru

ответ

5

Вы можете использовать str.startswith() и str.endswith():

if mystring.startswith('[city.') and mystring.endswith(']'): 
    print 'success' 

В качестве альтернативы, вы можете использовать python's slice notation:

if mystring[:6] == '[city.' and mystring[-1:] == ']': 
    print 'success' 

Наконец, вы можете использовать regular expressions:

import re 
if re.search(r'^\[city\..*?\]$', mystring) is not None: 
    print 'success' 
+0

Вы можете улучшить регулярное выражение, сделав его либо неживым ('. *?'), Либо путем сопоставления всего * кроме * закрытия ('[^ \]] *') вместо всех символов. –

+0

@MartijnPieters Спасибо! – TerryA

0

Попробуйте что-нибудь с помощью модуля re (здесь приведены правильные выражения HOWTO).

>>> import re 

>>> x = "asalkjakj [city.Absul Hasa Hii1] asjad a" # good string 
>>> y = "asalkjakj [city.Absul Hasa Hii1 asjad a" # wrong string 
>>> print re.match (r'.*\[city\..*\].*', x) 
<_sre.SRE_Match object at 0x1064ad578> 
>>> print re.match (r'.*\[city\..*\].*', y) 
None 
Смежные вопросы