如何在正则表达式中仅在方括号内查找特殊字符



我想从下面的字符串中找出仅在方括号内的 V 字母: 1. ADCVV[EO]-[asV]-[avs]-[VAS] 2. ADCVV[EO][a] 3. ADCVV[EO][a]v 4. ADCVV[EO]v[a]

我的期望字符串仅匹配数字 1

我尝试过[((.*[vV]).*)]但它会找出数字 1 和 4

有什么建议吗?

匹配一个[,后跟零个或多个非括号字符,后跟一个V,后跟更多非括号字符,后跟]

[[^[]]*V[^[]]*]

https://regex101.com/r/GstRUW/2

尝试/(?<=])[^[]W]+(?=[)/.

这利用了积极的后视和积极的前瞻来仅提取][之间的字符。

可以看出,此处仅选择v

const regex = /(?<=])[^[]W]+(?=[)/;
console.log('ADCVV[EO]-[asV]-[avs]-[VAS]'.match(regex));
console.log('ADCVV[EO][a]'.match(regex));
console.log('ADCVV[EO][a]v'.match(regex));
console.log('ADCVV[EO]v[a]'.match(regex));

最新更新