Попытка проверить строку с startwith - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь использовать startwith, чтобы проверить, начинается ли что-то с этого символа '<', а затем буквенно-цифровых символов. Мой код: </p>

if (line.startswith("<" + r"w\+")):

Я ожидал, что если line начнется с <inserttexthere> или <inserttexthere , он выведет True, но не работает. Вероятно, это как-то связано с тем, что я использовал re и что я неправильно отформатировал проверку на наличие буквенных символов.

1 Ответ

0 голосов
/ 11 июля 2020

Это потому, что вы не используете регулярное выражение. line.startswith("<" + r"w\+") означает проверку, начинается ли регулярное выражение со строки "<w\\+" точное значение, а не интерпретация регулярного выражения.

Кроме того, startswith не разрешает регулярное выражение, поэтому вы должны проверить это следующим образом:

import re

# Edit as @donkopotamus pointed well that match doesn't require '^' at the begining
in_re = re.compile(r'<\w+')

print(bool(in_re.match('<test true')))
print(bool(in_re.match('test false')))
print(bool(in_re.match('test <false 2')))

Возвращает:

True
False
False
...