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

时间:2019-11-29 01:56:24

标签: regex

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

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

匹配from spicy.optimize import newton from math import * f = lambda x : x**2 - sin(x) ans = newton(f, 1, tol = 1.0E-8, maxiter = 100) print(round(ans, 8)) ,后跟零个或多个非括号字符,后跟一个[,再跟多个非括号字符,后跟V

]

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

答案 1 :(得分:0)

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

这同时使用了正向查找和正向查找来仅提取][之间的字符。

可以看到仅选择v here

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));