Регулярное выражение с a = и a;

Я пытаюсь использовать регулярное выражение для поиска всех подстрок, которые начинаются с знака равенства (=) и заканчивается точкой с запятой (;) с любым количеством символов между ними. Это должно быть что-то вроде этого =*;

По какой-то причине равные не регистрируются. Есть ли какой-нибудь escape-символ, который заставит регулярное выражение заметить мой знак равенства?

Я работаю на Java, если у вас есть какие-либо отношения к этому вопросу.

Ответ 1

Это может быть то, что вы ищете. Вам нужно указать набор символов или символ дикой карты, к которым вы привязываете звездочку.

"=([^;]*);"

Вы также можете использовать неохотный квантификатор:

"=(.*?);"

Используя скобки, теперь у вас есть группы. Я считаю, что первая группа - это целое совпадение, а group[1] - это группа, найденная в скобках.

Код может выглядеть примерно так:

Regex r = new Regex("=([^;]*);");
Match m = r.Match(yourData);
while (m.Success) {
    string match = m.Groups[1];
    // match should be the text between the '=' and the ';'.
}

Ответ 2

Это ищет "любое число = знаков, включая 0"

=*;

Если вы хотите, чтобы "= сопровождалось любым количеством других символов", вы хотите

=.*;

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

=.*?;

Ответ 3

Регулярное выражение, которое вы указали, будет соответствовать ;, ===;,..., ================;. Как насчет =.*; (или =.*?;, если требуется нежелательное)?

Ответ 4

Что-то вроде =. *;

Ответ 5

Отличный источник для изучения regexp в Java: sun book о regexp

Ответ 6

мне нужно положить \after = и after: к моим данным в mongodb

ты можешь помочь