RegEx для сопоставления и исключения "и" - PullRequest
1 голос
/ 08 мая 2019

Я знаю, что для отрицания символа вроде ' я могу написать [^'].

Bu Я хочу захватить любой символ (повторяется ноль или более раз), но этот символ не должен быть одинарной или двойной кавычкой:

"[^'""]*"

Это правильный синтаксис?

1 Ответ

0 голосов
/ 08 мая 2019

Это выражение может помочь вам сделать это:

([^"'])*

Вы также можете использовать:

([^\x22\x27])*

Что вы можете упростить каквыражение может быть похоже на , чтобы захватить все, что вы хотите, кроме ' и " в группе захвата:

([^\x27\x22]*) 

enter image description here

График

Этот график показывает, как будет работать выражение, и вы можете визуализировать другие выражения в этой ссылке :

enter image description here

Тест JavaScript

const regex = /([^\x27|\x22])*/gm;
const str = `anything else9*F&(A*&Fa09s7f'"'''"afa'"adfadsf`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}
...