¿Podemos usar el operador relacional en GSUB?
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"
.
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 cualquieraGrav
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