Этот вопрос касается соответствия регулярному выражению. Предположим, у меня есть строка, которая может принимать одну из трех форм:
s1 = "id";
s2 = "id, title";
s3 = "id, title, date";
Я хотел бы создать регулярное выражение, которое извлекло бы поля id, title и date строки (если предусмотрено).
Используя синтаксис, подобный JavaScript, следующее регулярное выражение сопоставляет все три строки, делая все поля, кроме первого , xxxx
, необязательными, используя? оператор. Это работает, но довольно громоздко:
const regex = /(\w+)(?:\s*,\s*(\w+))?(?:\s*,\s*(\w+))?/;
const s1 = 'id';
const s3 = 'id, title';
const s3 = 'id, title, date';
Есть ли более простой способ сделать то же самое?