Python编程- 查找ABAC和AABB形式的成语。例如: '''绘声绘影、相亲相爱、平平安安、高高兴兴'''
- 查了一些资料后使用正则表达式来解决会比较容易
import re #正则表达式的库
text = '''绘声绘影、相亲相爱、平平安安、高高兴兴'''
# 从左往右数每一个括号代表了一个正则表达式的子模式,\3代表的是此处匹配的项与子模式3相同,即ABAC
pattern = r'(((.).\3.)|((.)\5(.)\6))'
#findall函数作用是返回包含字符串中所有与给定模式匹配的项的列表
for i in re.findall(pattern,text):
print(i[0])
```
- 切记切记,进行正规式匹配时,不要被代码习惯误导,一定不要加空格!!!
```python
pattern = r'( ( (.).\3. ) | ( (.)\5(.)\6 ) )' #error!!!
```
##踩了不少坑,希望能给大家一些帮助。