Следующее регулярное выражение будет соответствовать отдельным буквам или , состоящим из нескольких цифр, которые помещаются в начале предложения и затем сопровождаются либо одиночным точкой или запятой:
^(([a-zA-Z]{1}|[0-9]+)\s*[.,]{1})(.*)$
Это разбивка:
^ # Asserts position at start of the line
[a-zA-Z]{1}|[0-9]+ # Match a single alphabetic character or one or more digits
\s* # Matches whitespace characters between 0 and unlimited times
[.,]{1} # Matches a single period or comma character literal
.* # Matches the rest of the text
$ # Asserts position at end of the line
- Группа 1 - вернет букву / цифры и точку / запятую (включая потенциальные пробелы). Это на тот случай, если вам нужно получить оба варианта по какой-то причине.
- Группа 2 - в начале предложения будут возвращаться только буквы или цифры, которые, как я полагаю, вы действительно будете искать большую часть времени.
- Группа 3 - вернет остаток текста.
Регулярное выражение нужно будет изменить в зависимости от того, что вы хотите. Например, если вы не хотите совпадения, когда после буквы / цифры в начале предложения есть пробелы или если вы хотите добавить больше символов-разделителей, которые обозначают символ-разделитель. Дайте мне знать, если у вас есть какие-то дополнительные ограничения, которым вы хотите, чтобы это регулярное выражение соответствовало.
См. DEMO