我想从下面的字符串中找出仅在方括号内的 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));