Учитывая строку, я хочу получить идентификатор, найдя префикс (который является постоянным) и суффикс, который может существовать или не существовать. Вот возможные случаи, которые должны быть обработаны:
item: item_id { item_data }
item: item_id {
item_data
}
item: item_id
{
item_data
}
В каждой ситуации я пытаюсь выбрать 'item_id'. Вот подходы, которые я сейчас пробую:
- Используйте
item:\s*(.*)
в качестве оператора регулярного выражения, затем вручную удалите все '{' и '}'. Это терпит неудачу для первого примера, который я написал выше, потому что он сохраняет item_data в операторе поиска
- Используйте
item:\s*(.*){
в качестве оператора регулярного выражения, а затем вручную удалите скобки. Это не работает в третьем примере, где нет открывающей скобки, обозначающей конец оператора.
Что мне здесь делать? Я не могу создать оператор регулярного выражения, который может обрабатывать все три случая, не нарушая что-то еще. Я также пытался использовать item:\s*(.*){??
, чтобы сделать заявление нежадным, но это не работает вообще.