Строка соответствия регулярному выражению, которая не полностью состоит из угловых выражений - PullRequest
0 голосов
/ 06 сентября 2018

Мне приятно находить в наших проектах все строки, которые не являются выражениями angularjs, потому что мы используем несколько языков (поэтому каждая строка не полностью заключена в фигурные скобки).

Я хочу создать регулярное выражение, соответствующее всем строкам, у которых нет угловых выражений (или часть строки не имеет угловых выражений).

Имена переменных описывают, какие должны совпадать (да), а какие нет (нет).

var yes = "test";
var nope = "{{xyz}}";
var yes = "test {{xyz}}";
var nope = "{{::xyz}}";
var nope = "{{xyz}} {{abc}}"; //as whitespace is okay

Перепробовал много разных вещей, используя негативные взгляды и т. Д., Но в итоге даже не сработал регулярное выражение.

"([^}}])+{{|"$

Может быть, кто-то может мне помочь, так как моя голова как бы взорвется ...

Regex101: https://regex101.com/r/VePtVp/1

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Благодаря Анубхаве, как его пост и объяснение помогли мне создать это регулярное выражение здесь:

"(?!(\{\{[^\s]*\}\}\s*)+").*"

var yes = "test";
var nope = "{{xyz}}";
var yes = "test {{xyz}}";
var yes = "{test";
var yes = "{test} bearbeiten";
var yes = "{test}";
var nope = "{{::xyz}}";
var nope = "{{xyz}} {{abc}}";
var yes = "{{xyz}} test {{abc}}";
var yes = "{{xyz}} test {{abc}} temp {{var}}";

https://regex101.com/r/r9lmDL/2

0 голосов
/ 06 сентября 2018

Вы можете использовать следующее регулярное выражение для матча:

/"(?:\s*{{[^\s}]*}}\s*)+"/

Демонстрация RegEx

Подробности RegEx:

  • ": начальная цитата соответствия
  • (?:: начальная группа без захвата
    • \s*{{[^\s}]*}}\s*: строка {{...}} соответствия, окруженная необязательными пробелами.
  • )+: конец группы без захвата.+ соответствует 1 или более из этой группы
  • ": конечная кавычка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...