You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaScript正则表达式以正确提取名称/邮箱与日期信息?

正则表达式提取内容问题

输入示例

input1 = 'firstName.lastName@email.com - Fri, 19 May 2023 10:13:23 GMT Test Task from firstName.lastName@email.com'
input2 = 'firstNamelastName@email.com - Fri, 19 May 2023 10:13:23 GMT Test Task from firstNamelastName@email.com'
input3 = 'someName - Fri, 19 May 2023 10:13:23 GMT Test Task from someName'

期望输出

output1 = firstName.lastName@email.com - Fri, 19 May 2023 10:13:23 GMT
output2 = firstName@email.com - Fri, 19 May 2023 10:13:23 GMT
output3 = someName - Fri, 19 May 2023 10:13:23 GMT

问题场景

尝试使用以下正则提取内容:

regularEx = /\w+\.[a-zA-Z]+\s-\s\w{3},\s\d{1,2}\s[a-zA-Z]{3,9}\s\d{4}\s\d{1,2}:\d{1,2}:\d{1,2}\s[a-zA-Z]{3}/g

myInput = 'firstName.lastName@email.com - Fri, 19 May 2023 10:13:23 GMT Test Task from firstName.lastName@email.com'

regularEx.exec(myInput);

得到错误输出:

[
    "com - Fri, 19 May 2023 10:13:23 GMT"
]

需要修改正则以获取预期的完整匹配结果。


解决方案

原正则开头的\w+\.[a-zA-Z]+仅能匹配类似xxx.com的片段,无法覆盖带@的邮箱或纯名称的场景,导致只捕获到了末尾的部分内容。

修改后的正则表达式

推荐两种方案:

  • 精准匹配方案:针对开头的标识(邮箱/纯名称),使用[\w@.]+匹配包含字母、数字、@、.的内容:
const regularEx = /[\w@.]+\s-\s\w{3},\s\d{1,2}\s[a-zA-Z]{3,9}\s\d{4}\s\d{1,2}:\d{1,2}:\d{1,2}\s[a-zA-Z]{3}/;
  • 通用匹配方案:使用非贪婪模式匹配到-及后续时间部分结束,兼容性更强:
const regularEx = /.*?\s-\s\w{3},\s\d{1,2}\s[a-zA-Z]{3,9}\s\d{4}\s\d{2}:\d{2}:\d{2}\s[a-zA-Z]{3}/;

验证代码

// 使用精准匹配方案测试
const regularEx = /[\w@.]+\s-\s\w{3},\s\d{1,2}\s[a-zA-Z]{3,9}\s\d{4}\s\d{1,2}:\d{1,2}:\d{1,2}\s[a-zA-Z]{3}/;

const input1 = 'firstName.lastName@email.com - Fri, 19 May 2023 10:13:23 GMT Test Task from firstName.lastName@email.com';
console.log(regularEx.exec(input1)[0]); // 输出:firstName.lastName@email.com - Fri, 19 May 2023 10:13:23 GMT

const input2 = 'firstNamelastName@email.com - Fri, 19 May 2023 10:13:23 GMT Test Task from firstNamelastName@email.com';
console.log(regularEx.exec(input2)[0]); // 输出:firstNamelastName@email.com - Fri, 19 May 2023 10:13:23 GMT

const input3 = 'someName - Fri, 19 May 2023 10:13:23 GMT Test Task from someName';
console.log(regularEx.exec(input3)[0]); // 输出:someName - Fri, 19 May 2023 10:13:23 GMT

内容的提问来源于stack exchange,提问作者Aditya Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 20:33:23