Python2:匹配所有名称的正则表达式模式
Python2: Regex pattern to match all names
下面是一个文件夹中的文件,想要编写一个正则表达式模式来匹配所有文件名
并将其分成 4 组,例如
群组:
- 日期格式前的文字
- 日期格式
- 日期格式后的文本
- 扩展名(任何或没有扩展名)
姓名:
XYZ_XY__T_20180808_88
GYG_20180813.csv
JENNY_BH_COSTUMES_T_20180808_88.csv
JKS9KS9_DDD_20180809_2.txt
AMY_BH_MAKEUP_T_20180808_88.dat
UUB-134941099-00002531-003_20180814
usa-Nasa_Y_20180806_01.csv
usa-Tpkyo-HHDY_Y_20180806_01.csv
试过这个 -
(\w+)(-?)_(\d{4}\d{2}\d{2})(\w+)?(\.csv|\.dat|\.txt)?
但似乎不起作用。怎么办?
既然您想捕获 所有 日期子字符串之前的文本,看起来您所要做的就是在初始组中包含破折号和下划线:([\w-_]+)
(并删除以下捕获可选独立破折号的组):
您也可以使用 ^
和 $
来确保匹配跨越整行:
^([\w-_]+)(\d{4}\d{2}\d{2})(\w+)?(\.csv|\.dat|\.txt)?$
下面是一个文件夹中的文件,想要编写一个正则表达式模式来匹配所有文件名 并将其分成 4 组,例如
群组:
- 日期格式前的文字
- 日期格式
- 日期格式后的文本
- 扩展名(任何或没有扩展名)
姓名:
XYZ_XY__T_20180808_88
GYG_20180813.csv
JENNY_BH_COSTUMES_T_20180808_88.csv
JKS9KS9_DDD_20180809_2.txt
AMY_BH_MAKEUP_T_20180808_88.dat
UUB-134941099-00002531-003_20180814
usa-Nasa_Y_20180806_01.csv
usa-Tpkyo-HHDY_Y_20180806_01.csv
试过这个 -
(\w+)(-?)_(\d{4}\d{2}\d{2})(\w+)?(\.csv|\.dat|\.txt)?
但似乎不起作用。怎么办?
既然您想捕获 所有 日期子字符串之前的文本,看起来您所要做的就是在初始组中包含破折号和下划线:([\w-_]+)
(并删除以下捕获可选独立破折号的组):
您也可以使用 ^
和 $
来确保匹配跨越整行:
^([\w-_]+)(\d{4}\d{2}\d{2})(\w+)?(\.csv|\.dat|\.txt)?$