是否存在等于 (?<=)或(?
目标:在多行模式下捕获字符串的特定中间部分。 左侧或右侧只能是[a-zA-Z]。
注意:(xx)是特定字符!
答案 0 :(得分:1)
使用[a-zA-Z](xx)[a-zA-Z]
并获得组1
var test = [
'axxb',
'2xxb',
'@xxb',
];
console.log(test.map(function (a) {
return a + ' :' + a.match(/[a-zA-Z](xx)[a-zA-Z]/);
}));
答案 1 :(得分:0)
在js中有一些后顾之忧。并非所有浏览器都支持唯一问题。 Chrome是的,不确定其他人。 mdn
也不涵盖浏览器中的支持您可以查看此mini example-应该做您想做的事。
答案 2 :(得分:0)
只需将向前和向后结合即可:
https://regex101.com/r/VTKSH8/1
上面的示例捕获了最后两个示例中的第二个x
,因为它们匹配-您还可以使正则表达式在中间也匹配两个或更多字符:
https://regex101.com/r/5ThvGd/1
注意:它位于Regex101上,因为它不适用于堆栈片段