尝试用 startswith 检查字符串
Trying to check a string with startswith
我正在尝试使用 startswith 来检查某些内容是否以此符号“<”开头,然后是字母数字字符。我的代码是:
if (line.startswith("<" + r"w\+")):
我原以为如果 line
以 <inserttexthere>
或 <inserttexthere
开头,它会输出 True,但它不起作用。这可能与我使用 re
有关,我没有正确格式化字母数字字符的检查。
那是因为你没有使用正则表达式。 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')))
它returns:
True
False
False
我正在尝试使用 startswith 来检查某些内容是否以此符号“<”开头,然后是字母数字字符。我的代码是:
if (line.startswith("<" + r"w\+")):
我原以为如果 line
以 <inserttexthere>
或 <inserttexthere
开头,它会输出 True,但它不起作用。这可能与我使用 re
有关,我没有正确格式化字母数字字符的检查。
那是因为你没有使用正则表达式。 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')))
它returns:
True
False
False