Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3正则表达式:精确匹配字符一次_Python_Regex_Python 3.x - Fatal编程技术网

Python3正则表达式:精确匹配字符一次

Python3正则表达式:精确匹配字符一次,python,regex,python-3.x,Python,Regex,Python 3.x,一个句子需要包含1个或多个“a”实例,正好是1个“b”实例和0个或多个“c”实例 我的表达式是a+bc* 它适用于像“abc”“ab”“aabcc”这样的字符串,这很好,但当我有多个像“abbc”这样的b时,它也可以工作,但它不应该这样。当只有1个“b”时,我如何让它工作 这是我的全部代码 import re qq = re.compile('a+bc*') if qq.match('abb') is not None: print("True") else: print('Fa

一个句子需要包含1个或多个“a”实例,正好是1个“b”实例和0个或多个“c”实例 我的表达式是
a+bc*
它适用于像“abc”“ab”“aabcc”这样的字符串,这很好,但当我有多个像“abbc”这样的b时,它也可以工作,但它不应该这样。当只有1个“b”时,我如何让它工作

这是我的全部代码

import re
qq = re.compile('a+bc*')
if qq.match('abb') is not None:
    print("True")
else:
    print('False')
应该产生假的

使用
qq=re.compile(r'^a+bc*$)
^
表示开始时匹配,
$
表示结束时匹配


您希望将模式匹配到完整字符串,而不是其中的一部分。这就是为什么您需要
^
$
在这种情况下

您希望从逻辑中得到什么输出?A
True
False
取决于您的标准?由于您有一些代码,与我们共享它将帮助我们纠正您的问题。您使用了什么代码来检查此问题?请同时发布代码,看看这个,它不应该捕获所有的
'abbc'
a+bc*
匹配
abb
,因为有一个
a
后跟一个
b
。所以它在第二个字符之后匹配。第二个
b
被忽略。
re.match
方法只检查字符串的开头。要描述所有字符串直到结束,必须在模式中添加
$
。在正则表达式中,
^
表示字符串的开始,
$
表示结束