Esta expresión regular coincide con cadenas después de /ab. Además, me gustaría hacer coincidir las cadenas vacías después de /ab. ¿Cómo puedo hacer eso?. Gracias por adelantado.
const TelegramBot = require('node-telegram-bot-api'); const token = process.env.TOKEN; const bot = new TelegramBot(token, { polling: true }); bot.onText(/\/ab (.+)/, (msg, match) => { const chatId = msg.chat.id const prompt = match[1] bot.sendMessage(chatId, prompt) })Use una mirada hacia atrás: /^(?![\s\S])|(?<=\/ab).*/g
Un lookbehind (?<=) coincidirá con todo lo que esté delante de él sin estar incluido en la coincidencia real. En cuanto a devolver una cadena vacía, deberá devolver explícitamente un "" si no hay ninguna coincidencia. Puede cambiar esta línea tal vez: Se agregó un ^(?!\[\s\S\])| alternativo
const rgx = new RegExp(/^(?![\s\S])|(?<=\/ab).*/, 'g'); const str = `/ab 1234 hdsso /abksdfsioiowe /ab khbigigi7 s366s7d /ab`; let matches = [...str.matchAll(rgx)].flat(); console.log(matches);