Регулярное выражение с 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
ты можешь помочь