我是python的新手
我想在python 3.5中提取特定的模式
模式:数字字符数字
字符可以是 * + - / x X
我该怎么做?
我尝试使用模式[0-9 \ * / + - xX \ 0-9],但它返回字符串中的任何一个字符。
示例:2 * 3或2x3或2 + 3或2-3应匹配
但是asdXyz不应该
答案 0 :(得分:2)
您可以使用
[0-9][*+/xX-][0-9]
或匹配整个字符串:
^[0-9][*+/xX-][0-9]$
在Python 3.x中,如果使用re.fullmatch
中的模式,则可以丢弃^
(字符串锚的开头)和$
(字符串锚的结尾)({{ 3}}):
if re.fullmatch(r'[0-9][*+/xX-][0-9]', '5+5'):
print('5+5 string found!')
if re.fullmatch(r'[0-9][*+/xX-][0-9]', '5+56'):
print('5+56 string found!')
# => 5+5 string found!
答案 1 :(得分:1)
re.match()函数会将搜索范围限制为字符串的开头和结尾,以防止误报。
\d
匹配。 [x/+\-]
匹配,x
只与/
,+
,-
或\d
中的一个匹配(因为它是一个特殊的正则表达式字符)。 >>> re.match(r'(\d)([x/+\-])(\d)', '3/4').groups()
('3', '/', '4')
匹配。例如:
echo "
<input type ='button' value = 'Date' onclick = \"getElementById('demo')=Date();\" />
<p id='demo'> </p>
";
?>