Я хочу иметь возможность разбить следующую строку:
"This is a string with an embedded list. 1. My first list item. 2. My second item. a. My first sub-item. b. My second sub-item. 3. My last list item."
Я хотел бы разбить ее как:
"This is a string with an embedded list."
"1. My first list item."
"2. My second item."
"a. My first sub-item."
"b. My second sub-item."
"3. My last list item."
Я не могу гарантировать, что каждый элемент встроенного списка всегда будет ему предшествуют два пробела, но он будет иметь хотя бы один, иначе он начнет строку. Кроме того, я не могу гарантировать, что первое слово во встроенном списке всегда будет с заглавной буквы. Наконец, пронумерованная и буквенная часть внутри строки может быть go до подростков с точки зрения чисел, поэтому можно получить запись, начинающуюся, скажем, с «10». Если нет встроенного списка, я бы хотел, чтобы это просто возвращало исходную строку, без необходимости разделения.
Что касается правил для идентификации элемента встроенного списка, вот некоторые из моих мыслей:
- Перед ним всегда будет некоторое количество пробелов, один или несколько пробелов, или он может начать строку.
- После пробела или начала строки оно будет иметь от 1 до 2 цифры, за которыми следует точка, или один символ, за которым следует точка. Символ может быть или не быть заглавным.
Хотя это не исчерпывающий набор условий, я думаю, что он найдет хорошее количество встроенных списков.