es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo reemplazar una cadena presente en la siguiente línea

Quiero reemplazar la cadena “Test string” con “Hello World”. Quiero que “Hello” esté presente en la primera línea y “World” debería estar presente en la segunda línea, como se muestra en la cadena principal a continuación.

" This is a Test
string. This is a Test2 string"

La salida debería ser así:

" This is a Hello
World. This is a Test2 string"

También debería ser insensible a mayúsculas y minúsculas al reemplazar.

Por favor, sugiera una solución en Oracle SQL.

He intentado esta consulta. Es para reemplazar si “Test string” está presente en la misma línea. Y cumple con el requisito de ser insensible a mayúsculas y minúsculas.

SELECT REGEXP_REPLACE ('This is a Test string. This is a Test2 string',
                    'Test string',
                    'Hello World',
                   1,
                   0,
                   'i')  FROM DUAL;
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la salida deseada con “Hello” en la primera línea y “World” en la segunda línea, puedes utilizar la siguiente consulta Oracle SQL:

    SELECT REGEXP_REPLACE ('This is a Test
    string. This is a Test2 string',
                          '(?i)Test(\s+)string',
                          'Hello\1\nWorld',
                          1,
                          0) AS replaced_string FROM DUAL;
    

    Explicación:

    • La función REGEXP_REPLACE se utiliza para reemplazar cadenas en Oracle SQL.
    • (?i) representa una coincidencia sin distinguir entre mayúsculas y minúsculas.

    • \s+ coincide con uno o más caracteres de espacio en blanco.

    • \1 en la cadena de reemplazo se utiliza para hacer referencia al carácter de espacio en blanco capturado (es decir, \s+).

    • \n representa un carácter de nueva línea en la cadena de reemplazo.

    • FROM DUAL se utiliza para mostrar la salida de la función REGEXP_REPLACE.

    Salida:

    This is a Hello
    World. This is a Test2 string
    

    Nota: La cadena en la primera línea contendrá un carácter de espacio en blanco al final debido al espacio en blanco coincidente antes de “Test” en la cadena original. Esto se puede eliminar utilizando otras funciones de cadena si es necesario.

Comments are closed.