Python3正则表达式:精确匹配字符一次
一个句子需要包含1个或多个“a”实例,正好是1个“b”实例和0个或多个“c”实例 我的表达式是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
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*$)
。^
表示开始时匹配,$
表示结束时匹配
您希望将模式匹配到完整字符串,而不是其中的一部分。这就是为什么您需要
^
和$
在这种情况下您希望从逻辑中得到什么输出?ATrue
或False
取决于您的标准?由于您有一些代码,与我们共享它将帮助我们纠正您的问题。您使用了什么代码来检查此问题?请同时发布代码,看看这个,它不应该捕获所有的'abbc'
a+bc*
匹配abb
,因为有一个a
后跟一个b
。所以它在第二个字符之后匹配。第二个b
被忽略。re.match
方法只检查字符串的开头。要描述所有字符串直到结束,必须在模式中添加$
。在正则表达式中,^
表示字符串的开始,$
表示结束