Представьте меня есть строкиИзготовление + неживое?
abcD
, и я хочу, чтобы извлечь abc
из него. Я думал об использовании
^(.+)D$
однако затем в соответствие group1 не только abc
, но abcD
входит - как сделать .+
менее жадными, так D
не входит в группу? Я знаю, что могу использовать [^D]+
, но это действительно единственный способ?
Извините, это был уменьшенный плохой тестовый чехол. Посмотрите на данном примере (Java):
Pattern pattern = Pattern.compile("^(\\{(.+?)\\})?$");
Matcher matcher = pattern.matcher("{a}{b}");
System.out.println(matcher.matches()); // true
Почему этот матч? Не должно ли регулярное выражение просто указывать {
и один }
в строке? Я хочу только такие вещи, как {< not } >}
.
ли вы имеете в виду '^ (. +) $ D'? И какой из многих вариантов регулярных выражений вы используете? –
Это не '.', это жадный, а скорее' + '. –
@KeithThompson: Конечно, спасибо! Натан, хорошо, спасибо, но тогда какая-нибудь идея о том, как изменить это поведение? –