我需要找到一个正则表达式来从数据中提取字符串的首次出现。
例如,我的数据如下:
SFASDŞŞVMA SAD SADAS MYABCD12345678911TY ISIADABCD12345678911SAD
我需要从此数据中提取ABCD123456789
。
我需要发现字符串的首次出现总是以ABCD
开头,并且总长度为13。
如何使用正则表达式实现这一目标?
我尝试了对我不起作用的正则表达式/^ABCD(\w{9})$/gm
。
答案 0 :(得分:3)
您可以将/ABCD\w{9}/g
与match()
一起使用,以从第一个 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}
const regex = /ABCD\w{9}/;
const str = `SFASDŞŞVMA SAD SADAS MYABCD12345678911TY ISIADABCD12345678911SAD`;
console.log(str.match(regex)[0])