python 我赋值 name='abc' 我怎么用re.findall在字符串 'comment on table abc is '名字';' 分别找到'abc'和'名字'
时间: 2023-08-24 15:05:33 浏览: 66
python中正则表达式 re.findall 用法
您可以使用re.findall函数结合正则表达式来在中找到'abc'和'名字'。
以下是一个示例代码,演示如何使用re.findall来实现您的需求:
```python
import re
name = 'abc'
string = "comment on table abc is '名字';"
result = re.findall(r'\b(' + name + r')\b|\b(\w+)\b', string)
# 使用正则表达式模式'\b(' + name + r')\b|\b(\w+)\b'进行匹配
# \b表示单词边界,\w+表示匹配一个或多个字母、数字或下划线
matches = [match[0] or match[1] for match in result]
# 对于每个匹配项,如果第一个捕获组不为空,则取第一个捕获组,否则取第二个捕获组
print(matches) # 输出结果:['abc', '名字']
```
在上述代码中,我们使用re.findall函数配合正则表达式模式进行匹配。通过将'name'变量插入到正则表达式模式中,我们可以动态地匹配指定的名称。
最后,我们通过遍历匹配结果并根据捕获组的情况选择合适的值,将匹配到的结果存储在列表中。
希望对您有所帮助!如果还有其他问题,请随时提问。
阅读全文