El siguiente es un fragmento de mi componente React
<div className="grid lg:grid-cols-2 xl:grid-cols-1 lg:gap-x-5"> <article className={`${index > 0 ? 'border-t lg:border-t-0 xl:border-t border-gray-300/70' : ''} py-8 sm:flex xl:items-center lg:flex-col xl:flex-row`}> ... </article> </div> Necesito obtener todas las clases que están en el componente. Pude hacer coincidir las clases dentro de className="grid lg:grid-cols-2 xl:grid-cols-1 lg:gap-x-5" con la siguiente expresión regular:
/(?<=className=")(.*)(?=")/gSin embargo, no puedo averiguar cómo hacer coincidir las clases para
className={`${index > 0 ? 'border-t lg:border-t-0 xl:border-t border-gray-300/70' : 'text-gray-900'} py-8 sm:flex xl:items-center lg:flex-col xl:flex-row`} Por ejemplo, necesito hacer coincidir "border-t lg:border-t-0 xl:border-t border-gray-300/70 text-gray-900 py-8 sm:flex xl:items-center lg:flex-col xl:flex-row" en el ejemplo anterior.
Podrías probar esta combinación de 3 expresiones regulares:
function myFunction() { text = "<div className=\"grid lg:grid-cols-2 xl:grid-cols-1 lg:gap-x-5\">\ <article className={`${index > 0 ? 'border-t lg:border-t-0 xl:border-t border-gray-300/70' : 'text-gray-900'} py-8 sm:flex xl:items-center lg:flex-col xl:flex-row` }\ ...\ </article>\ </div>"; console.log(text.match(/(?<=\?\s?')([^']*)(?='(\s?:|\s?}))|(?<=}\s?)([^`]*)(?=`\s?})/g).join(' ')) }article className antes de la expresión regular a continuación si solo necesita los nombres de clase dentro de una etiqueta de artículo, ya que la expresión regular a continuación puede seleccionar otras clases si está entre comillas simples ( '' ).