正则表达式以抓取格式化时间 (HH:MM) 之前的所有文本

22 浏览
0 Comments

正则表达式以抓取格式化时间 (HH:MM) 之前的所有文本

这个问题已经有了答案

如何用正则表达式匹配“在这个字符序列之前的任何内容”?

我正在尝试解析以下形式的时间预订:

14687 - Project foobar, homeOffice 7:40 - 13:59
436 - Project barfoo, office 12:49 - 22:00

我想提取第一次出现的时间之前的所有文本。时间采用24小时制,格式为HH:MM,不带前导零。可能会出现一次或两次这样的时间戳。

我找到了匹配该格式时间的正则表达式:

(\d?\d:\d\d)

但是我该如何获取它之前的文本?

我正在使用javascript。

admin 更改状态以发布 2023年5月22日
0
0 Comments

我实际上更喜欢使用正则表达式替换的方法:

var input = "14687 - Project foobar, homeOffice 7:40 - 13:59";
var text = input.replace(/\s*\d{1,2}:\d{2} - \d{1,2}:\d{2}$/, "");
console.log(text);

这种方法比使用带有捕获组的match()函数更具优势。若输入没有以时间范围结尾,我们只需要返回整个输入即可。

0