Pregunta

Necesito reemplazar el . personaje con . \n En el siguiente formato de cadena. Pero, la restricción es que no reemplace el . personaje con .\n solo en la siguiente cadena de patrón.

"test was done and was negative. Urine dipstick: ph = 6\\n \\342\\200\\242 spec. Grav.  = 1.015"

Necesito la siguiente salida, como

"test was done and was negative. \n Urine dipstick: ph = 6\\n \\342\\200\\242 spec. Grav.  = 1.015"

La restricción es => "spec. Grav. = 1.015".

¿Fue útil?

Solución

str.gsub(/\.(?! (Grav| =))/, ".\n")

debería hacer el trabajo.

Breve explicacion

  • \. coincide con cualquier .
  • (?!) denota un aspecto negativo. Eso significa que no coincidirá con nada que se encuentre en estos soportes.
  • (Grav| =) de ahí un punto seguido de cualquiera Grav o = no se combinará.

Otros consejos

str = "test was done and was negative. Urine dipstick: ph = 6\\n \\342\\200\\242 spec. Grav.  = 1.015"

puts str.sub('. ', ".\n") 

#=> test was done and was negative.
#=> Urine dipstick: ph = 6\n \342\200\242 spec. Grav.  = 1.015

String.Sub solo sustituye la primera coincidencia.

¿Tu quieres esto?

str.gsub(/\.(?!\n)/, "\.\n")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top