首页 > 解决方案 > 我可以在下一组正则表达式中“重用”一个字符吗?

问题描述

如果它们出现在某个“标记”字符之前或之后,我想查找字符串中出现的字符。

所以我的标记是-,字符串是"a b-c d". 我想找到b并按c那个顺序。

我试过

re.findall(r'(-[a-z]|[a-z]-)','a b-c d')

显然只能得到

['b-']

我也试过

re.findall(r'([a-z]-[a-z])','a b-c d')

我得到了结果

['b-c']

,这更好,但我仍然需要对该结果进行后处理才能获得单个字符bc.

有没有解决这个问题的一步法?

编辑

后续问题:字符串是"a b-c-d e",我想得到类似的东西[('','a',''), ('','b','-'), ('-','c','-'), ('-','d',''), ('','e','')]

我有一种感觉,这要求太多了。

标签: pythonregex

解决方案


更多组。

>>> re.findall(r'(([a-z])-([a-z]))','a b-c d')
[('b-c', 'b', 'c')]

而且由于您实际上并不关心原始...

>>> re.findall(r'([a-z])-([a-z])','a b-c d')
[('b', 'c')]

推荐阅读