我正在尝试匹配包含复选标记的行:✓
我正在使用python3。
可以在此处阅读unicode编码:https://codepoints.net/U+2713?lang=en
我试图匹配的行看起来像这样:
✓ Chrome on MAC - MySite.com - version-1
re.match("✓", line)
不起作用。 re.match("/u2713", line)
也不起作用。
如何确定line
是否包含✓?
---更新---
已解决:显然在✓之前有某种不可见的字符,这导致match
运算符失败。感谢@NickT和@EricDuminil为我提供了线索。此外,in
运营商似乎更容易,更安全,所以我将答案标记为正确。
答案 0 :(得分:4)
你甚至不需要任何正则表达式。您可以使用in operator
:
>>> "✓" in "✓ Chrome on MAC - MySite.com - version-1"
True
>>> "✓" in "Chrome on MAC - MySite.com - version-1"
False
如果要在'marks.txt'
内显示带复选标记的行,可以写:
with open('marks.txt') as f:
for line in f:
if "✓" in line:
print(line, end='')
答案 1 :(得分:2)
对于万无一失的方法,请按名称指定字符:
>>> line = '✓ Chrome on MAC - MySite.com - version-1'
>>> re.match('\N{CHECK MARK}', line)
<_sre.SRE_Match object; span=(0, 1), match='✓'>
答案 2 :(得分:0)
如何确定该行是否包含✓?
示例:
import re
text = '''
123 456 789
✓ 123 456 789
123 456 789
123 456 ✓ 789
123 456 789
'''
for m in re.finditer('^.*✓.*$', text, re.MULTILINE):
print('line:', m.group(0))
打印:
line: ✓ 123 456 789
line: 123 456 ✓ 789