如何在用于搜索的 python 2.6 正则表达式集中包含一个字符串结尾和一个非数字字符?
我想找到开头为非数字,结尾为非数字或字符串结尾的 10 位数字。它是一个 10 位的 ISBN 号,“X”对最后一位有效。
以下不起作用:
is10 = re.compile(r'\D(\d{9}[\d|X|x])[$|\D]')
is10 = re.compile(r'\D(\d{9}[\d|X|x])[\$|\D]')
is10 = re.compile(r'\D(\d{9}[\d|X|x])[\Z|\D]')
Run Code Online (Sandbox Code Playgroud)
最后一组出现问题: [\$|\D] 匹配非数字或字符串结尾。
测试:
line = "abcd0123456789"
m = is10.search(line)
print m.group(1)
line = "abcd0123456789efg"
m = is10.search(line)
print m.group(1)
Run Code Online (Sandbox Code Playgroud)