【发布时间】:2018-05-12 03:57:53
【问题描述】:
我正在尝试编写一个匹配字符串的正则表达式
"A","B","AB"
哪个不匹配
"","AA","BB","BA"
我尝试了一个简单的模式
re.search(r'^(A)?(B)?',sample_str)
但是这个模式匹配""。
我知道许多解决方案可以通过对多个模式执行逻辑操作来匹配这个,但是是否可以使用单个模式进行匹配?
提前谢谢你。
【问题讨论】:
-
我无法弄清楚模式,例如:为什么“AB”可以,而“BA”不行。是不是像你按顺序从“A”和“B”构造一门语言一样?
-
如果它只接受这些值,为什么不直接比较值呢?
-
你可以只用
re.search(r'A|B|AB', sample_str),但是如果你想找到匹配问题的子串,那么给"AB"可以解释为两个匹配,A和@987654328 @,或匹配AB。 -
@Curcuma_ 我无法比较这些值,因为 A 和 B 是包含其他字符的两个字符串块。我试图概括这个问题。
-
请不要概括到问题没有意义的地步。给出一个你想要匹配的模式的完整例子。
标签: python regex python-2.7