用正则表达式匹配字符串中的文件名
时间: 2023-04-09 11:02:42 浏览: 318
可以使用正则表达式来匹配字符串中的文件名,例如:
```
import re
string = "这是一个文件名:example.txt"
pattern = r"\w+\.txt"
match = re.search(pattern, string)
if match:
print(match.group())
else:
print("未找到文件名")
```
这个正则表达式会匹配以字母、数字或下划线组成的文件名,后缀为txt的文件名。如果找到了匹配的文件名,就会输出文件名。如果没有找到,就会输出"未找到文件名"。
相关问题
python 使用正则表达式获取以下实验报告文件名中的姓名和学号:
假设实验报告文件名的格式为“姓名_学号_实验报告.docx”,可以使用正则表达式来提取姓名和学号。具体代码如下:
```python
import re
filename = "张三_20210001_实验报告.docx"
pattern = r'^(.*)_([0-9]+)_.*$'
match = re.match(pattern, filename)
if match:
name = match.group(1)
student_id = match.group(2)
print("姓名:", name)
print("学号:", student_id)
else:
print("未匹配到结果!")
```
解释一下正则表达式的含义:
- `^`:匹配字符串的开头
- `(.*)`:匹配任意字符任意次,用于提取姓名
- `_`:匹配下划线
- `([0-9]+)`:匹配数字一次或多次,用于提取学号
- `.*$`:匹配任意字符任意次,直到字符串的结尾
如果匹配成功,使用`match.group()`方法可以获取对应的匹配结果。
使用正则表达式匹配文件名
可以使用正则表达式来匹配文件名,以下是一个示例:
假设我们要匹配所有以“.txt”结尾的文件名,可以使用以下正则表达式:
```
\w+\.txt
```
其中:
- \w+ 表示匹配一个或多个字母、数字或下划线字符
- \. 表示匹配一个点号
- txt 表示匹配文本字符串 “txt”
使用这个正则表达式,可以匹配类似于以下的文件名:
- abc.txt
- 123.txt
- file_name.txt
但是,它不会匹配以下文件名:
- abc.txt.bak
- file.txt.txt
如果想要匹配所有以“.txt”结尾的文件名,包括嵌套的文件名,可以使用以下正则表达式:
```
.*\.txt$
```
其中:
- .* 表示匹配任意数量的任意字符
- \. 表示匹配一个点号
- txt 表示匹配文本字符串 “txt”
- $ 表示匹配字符串的末尾
使用这个正则表达式,可以匹配类似于以下的文件名:
- abc.txt
- 123.txt
- file_name.txt
- path/to/file.txt
但是,它不会匹配以下文件名:
- abc.txt.bak
阅读全文