sed를 사용하여 파일에있는 모든 문자 ('<')보다 작거나 ('>')보다 큰 문자를 찾으려고합니다. 단일 문자 만 일치 시키려합니다.sed/regex : 문자열에서 '<' or '>'을 일치시키는 방법
내 목표는 ' <'
및 '> '
으로 대체하는 것입니다. 주위를 공백으로두면 더 쉽게 파싱 할 수 있습니다.
예를 들어,이 일치합니다 ..
<p>Hey this is a paragraph.</p><p>And here is another.</p>
(태그 내 공백없이) 과로 돌려
<p> Hey this is a paragraph. </p> <p> And here is another. </p>
(공백주의) 내 처음 (틀린) 추측은 다음과 같습니다.
sed 's/<{1}|>{1}/ <> /' ...
원하지 않는 전체 단어/줄과 일치하며 올바르게 대체되지 않습니다.
어쨌든, 어떤 도움을 주시면 감사하겠습니다! 감사!
당신은 정말 오래된 정규 표현식으로 HTML을 구문 분석하고 싶지 않아요. HTML 파서를 사용하십시오. (이유에 대한 가장 upvoted 답변 중 하나입니다 http://stackoverflow.com/a/1732454/ 참조) – geoffspear
@ Woble : 나는 일반적으로 귀하의 주장에 동의하지만, 정규 표현식을 사용하여 여전히 테스트를위한 괜찮을 수 있고 같은 ... 만약 이것을 초과하면, 적절한 파서를 사용하십시오. – 0xC0000022L
하하 그래, 알아. 나는 그것을 보았다. 필자는 매우 작은 태그 하위 집합을 위해 perl에서 장난감 학술 용 HTML 포맷터를 작성하고 있습니다. 나는 sed와 regex를 사용하여 펄 코드에 필요한 공백이 있는지 확인하려고한다. – jiman