【发布时间】:2018-12-21 15:51:20
【问题描述】:
我有以下这些文件名并使用下面的正则表达式进行匹配:
文件名:
- 1234 12345678 测试文件2018年12月20日.pdf
- 1234 12345678 TESTDOCUMENT December 20, 2018.pdf
我用来匹配文件名的正则表达式是:
(\d+)\s(\d+)\s(\w+\s?\w+)
对于第一个文件,它正在工作,但对于第二个文件,它与十二月月份相匹配,因为这也是两个带有空格的单词。
在 TEST 和 DOCUMENT 之间有或没有空格的情况下,如何编写正则表达式以仅匹配“1234 12345678 TEST DOCUMENT”。
预期结果:
- 1234 12345678 测试文件
- 1234 12345678 测试文件
第二个文件不是这个(1234 12345678 TESTDOCUMENT December)
【问题讨论】:
-
您希望如何区分这两种情况?它会一直说“测试文档”还是其他名称?
-
可以是任何文本。可能的组合是带空格的两个单词
-
那我看不出你怎么区分这两者。没有任何区别特征,除非您有固定列之类的其他东西。
-
TEST DOCUMENT 之后,总是一月-十二月格式的一个月
-
好的。然后,您的正则表达式的一部分需要匹配所有十二个月的名称,例如this。这将为您提供结束分界线。
标签: regex