Javascript从数据中提取某些字符串

时间:2019-12-21 12:01:53

标签: javascript regex

我需要找到一个正则表达式来从数据中提取字符串的首次出现。

例如,我的数据如下:

SFASDŞŞVMA SAD SADAS MYABCD12345678911TY ISIADABCD12345678911SAD

我需要从此数据中提取ABCD123456789

我需要发现字符串的首次出现总是以ABCD开头,并且总长度为13。

如何使用正则表达式实现这一目标?

我尝试了对我不起作用的正则表达式/^ABCD(\w{9})$/gm

2 个答案:

答案 0 :(得分:3)

您可以将/ABCD\w{9}/gmatch()一起使用,以从第一个 index 获得结果:

var str = "SFASDŞŞVMA SAD SADAS MYABCD12345678911TY ISIADABCD12345678911SAD"

console.log(str.match(/ABCD\w{9}/g)[0])

答案 1 :(得分:1)

您尝试使用^ABCD(\w{9})$的模式不匹配,因为您使用锚点^$来声明字符串的开始和结束。

请注意,如果只想进行完全匹配,则不需要捕获组(\w{9})

您可以省略这些锚点,并且如果要从字符串中进行单个匹配,还可以省略/g全局标志和/m多行标志。

ABCD\w{9}

Regex demo

const regex = /ABCD\w{9}/;
const str = `SFASDŞŞVMA SAD SADAS MYABCD12345678911TY ISIADABCD12345678911SAD`;
console.log(str.match(regex)[0])