Отрицание в RegExp

zenit

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

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

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

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

Спасибо.
 

tf

крылья рулят
zenit попробуй от обратного !
(ничего лучше пока найти не могу
 

zenit

Guest
от обратного слишком большой перебор(много вариантов)
 

zarus

Хитрожопый макак
а зачем регэксп?
воспользуйся функцией поиска подстроки hpweb_utilities и действуй соответственно...
 

white phoenix

Новичок
> как в JS
Регулярные выражения стандартны (за исключением некоторых нюансов).
> написать RegExp, который матчит все строки в которых нет определенного вхождения.
Условная отрицательная подмаска: (?!text)
 

zenit

Guest
А можно пример?
пусть есть текст hisscript.js
и myblabla.js

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

Спасибо.
 

valyala

Новичок
Автор оригинала: 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);

?>
 
Сверху