REGEXP_REPLACE 가이드라인
다음과 같이 대량으로 Wordpress의 투고에서 스팸 링크를 대량으로 제거하려고 했습니다.
<a style="text-decoration: none" href="/price-of-xenical-at-pharmacy">.</a>
post_content 컬럼 아래의 wp_posts 테이블에 있습니다.href 태그에 %를 추가하는 와일드카드를 사용하여 시도했습니다.모든 URL이 다르지만 앵커(풀스톱)와 인라인 스타일링은 동일합니다.
UPDATE wp_posts
SET post_content = REPLACE (post_content,
'<a style="text-decoration:none" href="%">.</a>',
'.');
그 후 SQL은 제가 하려는 일(또는 적어도 제가 하고 있는 일)을 지원하지 않는다는 말을 들었습니다.
저는 REGEXP_REPLACE를 지원하는 MariaDB를 사용하고 있습니다.따라서 이들 링크를 대량 삭제하는데 필요한 SQL Query와 REGEX에 대한 지침을 찾고 있습니다.다른 콘텐츠는 그대로 두겠습니다.
도움말이 있으면 위의 문자열을 삭제하거나 공백으로 교체하는 것이 목적입니다.
갱신하다
예를 들어 투고 콘텐츠의 마지막 링크는 삭제해야 하는 유형입니다.:
<h2>Warranty</h2>
<span style="font-size: small"> </span>
<span style="font-size: small">Lorem ipsum dolor sit amet, non risus bibendum quis morbi, duis elit porttitor semper, ante augue at consectetuer elit lectus est, nascetur neque consequuntur donec turpis. Cursus ullamcorper posuere massa interdum, rhoncus blandit, vitae in etiam justo lectus eu fames. Dolor quam dicta wisi class duis. Eleifend sagittis, scelerisque convallis consectetuer sed non aptent. Velit tristique vulputate proin, ipsum diam aliquam. Nibh sit vitae et m</span>
<a href="https://www.example.com/wp-content/image.jpg"><img class="alignright size-full wp-image-56" title="image" src="https://www.example.com/wp-content/image.jpg" alt="image" width="280" height="280" /></a><a style="text-decoration: none" href="/price-of-xenical-at-pharmacy">.</a>
모든 앵커 태그를 제거하고 태그로 둘러싸인 텍스트를 유지하려면 다음 패턴을 사용하십시오.
<a[^>]*>(.*?)</a>
그런 다음 첫 번째 캡처 그룹으로 대체합니다.패턴에 대해서는 우리가 사용하는 것 이외에는 별로 할 말이 없다.(.*?)
앵커 태그 사이에 있는 내용을 캡처합니다.그.*?
는 중요하며 regex 엔진에 첫 번째 닫힘 태그에서 정지하도록 지시합니다.그렇지 않으면, 우리가 그냥(.*)
컬럼에 여러 앵커태그가 존재할 경우 여러 앵커태그에 걸쳐 소비될 수 있습니다.
SELECT
REGEXP_REPLACE('<a style="text-decoration:none" href="[^"]*">BLAH</a>',
'<a[^>]*>(.*?)</a>', '$1');
위의 쿼리 출력은BLAH
.
대신 모든 앵커 태그를 제거하는 경우 다음을 사용합니다.
SELECT
REGEXP_REPLACE('<a style="text-decoration:none" href="[^"]*">BLAH</a>',
'<a[^>]*>(.*?)</a>', '');
언급URL : https://stackoverflow.com/questions/55040851/regexp-replace-guidance
'programing' 카테고리의 다른 글
PHP 파일이 일반 텍스트로 표시되는 이유는 무엇입니까? (0) | 2022.12.07 |
---|---|
MySQL 검색 및 필드의 일부 텍스트 바꾸기 (0) | 2022.12.07 |
'초기 통신 패킷을 읽을 때 MySQL 서버에 대한 연결이 끊어졌습니다. 시스템 오류: 0 (0) | 2022.12.07 |
MySQL을 다시 시작하지 않고 MySQL의 느린 쿼리 로그를 활성화하려면 어떻게 해야 합니까? (0) | 2022.12.07 |
PIP 및 설정이 포함된 Python Cryptography 패키지를 설치하지 못했습니다.화이 (0) | 2022.12.07 |