【发布时间】:2020-02-14 14:09:40
【问题描述】:
我有一组命名相当不一致的字符串,但它们的结构应该足以分组。
摘录如下:
test test 1970-2020 w15.txt
test 1970-2020 w15.csv
test 1990-99 q1 .txt
test 1981 w15 .csv
test test w15.csv
我正在尝试使用以下 RegEx 按组(测试名称、(年份)?、后缀、类型)提取信息:
(.*)\s+([0-9]+(\-[0-9]+)?\s+)?((w|q)[0-9]+(\s+)?)(\..*)$
除了与年份匹配的可选组(年份间隔、单年或根本没有年份)外,它都有效。 我缺少什么来使模式起作用?
这里还有一个用于测试的 RegEx101 链接:
【问题讨论】:
-
您的第一组匹配所有内容,您需要更具体,例如
[^0-9]+或[ a-z]+ -
您使用什么语言/工具?来自regex tag info:“由于正则表达式尚未完全标准化,所有带有此标签的问题还应包含一个指定适用的编程语言或工具的标签。”
标签: regex