Отрицание в RegExp

  • Автор темы Автор темы zenit
  • Дата начала Дата начала

zenit

Guest
Отрицание в RegExp

Подскажите, пожалуйста, как в JS написать RegExp, который матчит все строки в которых нет определенного вхождения.

То есть, все строки где нет строки "hpweb_utilities".
[^(hpweb_utilities)]\.js - не работает:((

Мне нужно именно Regexpом, т.к там выражение сложнее.

Спасибо.
 
zenit попробуй от обратного !
(ничего лучше пока найти не могу
 
от обратного слишком большой перебор(много вариантов)
 
а зачем регэксп?
воспользуйся функцией поиска подстроки hpweb_utilities и действуй соответственно...
 
> как в JS
Регулярные выражения стандартны (за исключением некоторых нюансов).
> написать RegExp, который матчит все строки в которых нет определенного вхождения.
Условная отрицательная подмаска: (?!text)
 
А можно пример?
пусть есть текст hisscript.js
и myblabla.js

Как заматчить только все строки XXX.js кроме hisscript.js используя отрицательную подмаску?

Спасибо.
 
Автор оригинала: zenit
А можно пример?
пусть есть текст hisscript.js
и myblabla.js

Как заматчить только все строки XXX.js кроме hisscript.js используя отрицательную подмаску?

Спасибо.
PHP:
<?php

function f($word, $str) {
    $word = preg_quote($word);
    preg_match_all("/\\b(?:(?!$word)[^\\s])+?\\.js\\b/", $str, $matches);
    return $matches;
}

$a = f('abc', 'abc.js aabc.js abcde.js babcd.js test.js qwe rty');
var_dump($a);

?>
 
Сверху