모두 대문자로 된 하나 이상의 단어가 포함된 HTML 단락 일치

모두 대문자로 된 하나 이상의 단어가 포함된 HTML 단락 일치

정규식 등을 사용하여 대문자로 된 단어가 하나 이상 포함된 단락을 일치시켜야 합니다.

그런 다음 이를 헤더로 변환하고 제목의 모든 내용을 대문자로 표시합니다. 아래 예에서 단어는여기으로 바뀌어야 한다여기. 여기에는 악센트 문자가 포함됩니다.

어떻게 해야 하나요?

<P STYLE="margin-bottom: 0cm"><BR>
    </P>
</DIV>
<P CLASS="western" ALIGN=CENTER STYLE="margin-bottom: 0cm; line-height: 0.42cm">
<FONT SIZE=4><B>TITLE Here</B></FONT></P>

저는 리눅스를 사용하고 있습니다.

답변1

콘솔 명령을 사용하면 이 작업을 거의 확실하게 수행할 수 있지만 이는 일반적인 작업이라기보다는 일회성 복구 작업처럼 들립니다. 따라서 저는 제가 가장 좋아하는 그래픽 정규식 도구인 jEdit이라는 매우 편리한 오픈 소스 프로그래머용 텍스트 편집기를 사용하겠습니다. (보다jedit.org자세한 내용은.)

jEdit을 설치한 후에는 Ctrl+F를 누르거나 "검색" 메뉴로 이동하여 "찾기" 항목을 선택하여 "검색 및 바꾸기" 대화 상자를 열 수 있습니다.

"검색 및 바꾸기" 대화 상자에서 사용하려는 "검색 위치" 옵션을 선택해야 합니다. "현재 버퍼"는 현재 파일만 변경하고, "모든 버퍼"는 jEdit에 현재 열려 있는 모든 파일을 변경하며, "디렉토리" 옵션을 사용하면 대화 상자 하단에서 지정하는 디렉터리의 모든 파일을 변경할 수 있습니다. )는 지정한 필터(예: *.html또는 *.php)와 일치합니다. "디렉터리" 옵션은 매우 강력하고 필요한 옵션일 수 있지만 매우 주의 깊게 사용하고 검색/바꾸기가 고려하지 않은 방식으로 일치하여 예기치 않은 변경을 일으키지 않는지 매우 주의 깊게 확인하십시오.

다음으로 대화 상자 중앙에 있는 "정규식" 상자를 선택해야 합니다.

이제 변경해야 하는 텍스트를 대상으로 지정하는 데 사용할 정규식을 "검색" 텍스트 상자에 입력하세요. 귀하의 요구 사항을 이해하면 다음 정규식 패턴이 해당 작업을 수행할 수 있습니다.

(?<=>)([^<]*\p{Lu}{2,}[^<]*)(?=<)(?!</script)

이 패턴은 "a 앞에오고 최소한 두 개의 연속 대문자가 >아닌 임의의 수의 문자를 포함하는 텍스트를 선택한 다음 가 아닌 임의의 수의 문자를 포함 하고 마지막으로 a가 오고 " 가 아닌 텍스트를 선택합니다 ."라고 말합니다.<<<</script

그런 다음 "BeanShell 조각의 반환 값" 옵션을 선택하고 "바꿀 내용" 텍스트 상자에 입력해야 합니다.

_1.toUpperCase()

이 BeanShell 조각은 "정규식과 일치하는 첫 번째 캡처 그룹에서 캡처된 텍스트가 대문자로 변환됨"이라고 말합니다.

나는 이것을 테스트했으며 두 개 이상의 연속 대문자를 포함하는 원시 텍스트의 연속 시퀀스를 찾는 HTML 파일을 통해 행복하게 실행됩니다. UK 또는 USB와 같은 무고한 항목이 포함된 모든 단락도 이 정규식과 일치하므로 수량 {2,}자를 변경하여 {4,}시퀀스가 ​​일치하려면 최소 4개의 연속 대문자가 있어야 할 수 있습니다.

또한 중요한 파일이나 파일 세트에 이 기능을 적용하기 전에 매우 주의 깊게 테스트하십시오(그리고 모든 원본을 먼저 백업하여 문제가 발생하고 나서야 알 수 있을 때까지 복원할 수 있는지 확인하십시오). 변경 사항을 저장했습니다).

관련 정보