복잡한 정규식 대체 [닫기]

복잡한 정규식 대체 [닫기]

sed정규식에 대한 매우 기본적인 지원만 있습니다.

전체 정규식 라이브러리(편집: PCRE)가 필요할 때 사용되는 표준 도구는 무엇입니까(예: 너비가 0인 부정 예측 어설션)?

답변1

전체 정규식 라이브러리는 언제 필요합니까(예: 너비가 0인 부정 예측 어설션)?

Lookaheads는 Perl 정규식에서 비롯되며 Perl은 sedLookaheads 및 정규식의 기능 중 많은 부분을 상속(복사) awk하므로 아마도 이를 사용하고 싶을 것입니다.

예를 들어, foo따르지 않는 각각을 다음 bar으로 바꾸십시오 xxx.

perl -pe 's/foo(?!bar)/xxx/g' 

-p플래그는 sed입력 라인에 대해 주어진 코드를 실행한 다음 결과를 인쇄하는 유사한 동작을 제공합니다.

인터넷에는 Perl 입문 튜토리얼이 많이 있을 수 있습니다.

답변2

설치 했다면 perl다음과 같이 사용할 수 있습니다.

perl -pe "s/(?<=SomeTextBefore)ReplaceMe(?=SomeTextAfter)/NewText/g"

파일을 변경하는 데 다음을 사용할 수 있습니다.

cat source.txt | perl -pe "s/(?<=SomeTextBefore)ReplaceMe(?=SomeTextAfter)/NewText/g" > dest.txt

다음에 추가-CS 옵션파일이 UTF8로 인코딩된 경우.

관련 정보