Una expresión regular que reconocería a / * … * / note

Tengo una cadena que contiene /*...*/ notas y estoy tratando de deshacerme de ellas. Por ejemplo:

 Hello /* this is a note */ 

Así que básicamente estoy tratando de encontrar una expresión regular que encuentre una / entonces una secuencia de cualquier tipo de caracteres, luego otra / . He intentado esto:

 ("/+(\\w|\\W)*+/").toRegex() 

… pero no funciona.

Debe escaping de los caracteres especiales

  /(\/\*.+?\*\/)/ 

http://regexr.com/3dd28

Pruebe este patrón (también permite líneas múltiples entre /* .. */ ) :

EDITAR: según la sugerencia de mszymborski .

 (\/\*[\w\'\s\r\n\*]*\*\/)|(\/\*.*?\*\/) 

regex101 DEMO

enter image description here

*+ es posesivo , entonces (\w|\W)*+ coincide hasta el final de la cadena y se niega a retroceder para dejar la final / coincidencia. Creo que quisiste decir:

 "(?s)/.*?/"` 

(?s) enciende el modo DOTALL, que permite el . para que coincida con las nuevas líneas; eso es mucho más eficiente que (\w|\W) . El ? hace que el .* no codicioso, por lo que se detiene en el siguiente / . Sin embargo, creo que es posible que desee esto:

 "(?s)/\\*.*?\\*/" 

No sé qué tipo de text está buscando, pero si se trata de un lenguaje de progtwigción, es probable que * sea ​​parte del delimitador de comentarios, y a / por sí mismo tiene su propio significado, muy diferente.

No estoy seguro de lo que está tratando de lograr, pero aquí hay una expresión regular que coincide con un /* ... */ comentario: \/\*.*\*\/

Utilice este sitio para search y depurar una solución http://regexr.com/

Desafortunadamente no es posible hacer coincidir /* .. */ syntax con Java / Kotlin RegEx correctamente ya que no admiten patrones recursivos.

El caso de testing problemático es:

 /* /* ... */ */ 

El comstackdor de Kotlin analizará el código anterior como dos bloques de comentarios nesteds .

La única manera de lograr eso para un nivel arbitrario de bloques nesteds es usar una técnica llamada "Recursividad de expresión regular". Como se menciona aquí, no es compatible con la biblioteca de expresiones regulares de Java Java con soporte de recursión .

La única solución que veo aquí (si de verdad necesitas analizar correctamente cualquier código de Kotlin) es escribir tu propio analizador para eso.

  • Regex no coincide en Kotlin
  • groupValues ​​solo devuelve la última aparición de patrón repetitivo
  • ¿Regex o comodín en la statement de Kotlin cuando?
  • Fusionando varias tags <script> en una en Kotlin