Мне нужно сопоставить строки, которые не содержат ключевое слово (beta2
) в произвольной позиции.
Рассмотрим:
var aStr = [
'/beta1/foo',
'beta1/foo',
'/beta1_xyz/foo',
'blahBlah/beta1/foo',
'beta1',
'/beta2/foo',
'beta2/foo',
'/beta2_xyz/foo',
'blahBlah/beta2/foo',
'beta2',
'/beat2/foo',
'beat2/foo',
'/beat2_xyz/foo',
'blahBlah/beat2/foo',
'beat2'
];
function bTestForMatch (Str)
{
return /.*\b(?!beta2).*/i.test (Str);
}
for (var J=0, iLen=aStr.length; J < iLen; J++)
{
console.log (J, bTestForMatch (aStr[J]), aStr[J]);
}
Нам нужно регулярное выражение, которое соответствует всем строкам, исключающим beta2
.beta2
всегда начинается с границы слова, но не обязательно заканчивается на одном.Он может находиться в разных местах строки.
Желаемые результаты будут следующими:
0 true /beta1/foo
1 true beta1/foo
2 true /beta1_xyz/foo
3 true blahBlah/beta1/foo
4 true beta1
5 false /beta2/foo
6 false beta2/foo
7 false /beta2_xyz/foo
8 false blahBlah/beta2/foo
9 false beta2
10 true /beat2/foo
11 true beat2/foo
12 true /beat2_xyz/foo
13 true blahBlah/beat2/foo
14 true beat2
Регулярное выражение для стороннего инструмента анализа, который регулярно использует JavaScriptвыражения для фильтрации промежуточных результатов.Инструмент занимает одну строку регулярного выражения.API отсутствует, и у нас нет доступа к его исходному коду.
Существует ли регулярное выражение JavaScript, которое отфильтровывает результаты второй бета-версии (beta2
) из этого анализа?