广泛支持的正则表达式的背后

时间:2019-03-23 07:54:37

标签: javascript regex

是否存在等于 (?<=)或(?

目标:在多行模式下捕获字符串的特定中间部分。 左侧或右侧只能是[a-zA-Z]。

  • axxb =>通过捕获xx
  • 2xxb =>失败
  • @xxb =>失败

注意:(xx)是特定字符!

3 个答案:

答案 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上,因为它不适用于堆栈片段