Tengo un bot de Telegram y quiero eliminar todos los enlaces del texto, pero aquí tengo dos problemas:
1. No sé cómo eliminar todos los ID como este: @id
con expresión regular actual que tengo en mi código
2. También quiero eliminar todas las cadenas que tienen enlaces (en Telegram para agregar un enlace a un texto, seleccione el texto y haga clic con el botón derecho> formato> crear enlace, luego el color de su texto se volverá azul y su texto se convertirá en un enlace)
así que este es mi código actual y eliminar enlaces de la entrada:
bot.on("text", async function (msg){ const text = msg.text.replace( /\b((?:[az][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][az]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”'']))/g, "" ); console.log(text); }) bot.start();
Pero quiero eliminar los identificadores (todo después de @) y el texto contiene enlaces
también uso TeleBot para usar el bot de Telegram
Podrías agregar una alternancia |
hacer coincidir una @ seguida de cualquier carácter excepto @ o un carácter de espacio en blanco con su patrón usando |\B@[^\s@]+
Tenga en cuenta que solo para una coincidencia, puede convertir el grupo de captura externo de la primera parte en un grupo que no sea de captura, ya que reemplaza la coincidencia solo con una cadena vacía.
\b(?:(?:[az][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][az]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”'']))|\B@[^\s@]+