这可能是直截了当的,但我甚至不知道我应该谷歌哪一句话来找到答案。原谅我的不高兴。正则表达式正则表达式返回的值正则表达式
我有串看起来像这样的(文件名):
site12345678_date20160912_23001_to_23100_of_25871.txt
什么命名约定的意思是“记录23001 23100通过出25871站点12345678为2016年9月12日(20160912)”
我想要做的是提取的日期部分(_date
及以下_
之间的那些数字)
正则表达式:.*(_date[0-9]{8}).*
将返回字符串_date20160912
。但是我真正想要的只是20160912
。很明显,[0-8]{8}
不给我我想要的这种情况下,因为这可能与网站混淆,或可能记录计数
我怎样才能负责任地完成这种'子串'与一个正则表达式?
只需使用捕获组:'/ _date([0-9] {8})/'来提取数字部分。如果您的目标平台具有此功能,则可以使用lookbehinds('/(?<= _ date)[0-9] {8} /')[[demo](https://regex101.com/r/wU1iU7/1)]。提示:JS没有。 – raina77ow
你使用哪种语言? –
你只需要重新调整圆括号 - '。* _ date([0-9] {8})。*' –