이렇게하면됩니다. 모든 특수 키보드 문자 및 모두를 유지합니다. html 태그
및 기타 항목 만 대상으로합니다.
정규 표현식은 태그와 특수 문자에 대해 원자 그룹을 사용합니다.
결과는 매우 빨라야합니다.
현악기와 구분 된 형태 '~..~'
:
'~(?>(?><(?:(?:(?:(script|style|object|embed|applet|noframes|noscript|noembed)(?:\s+(?>"[\S\s]*?"|\'[\S\s]*?\'|(?:(?!/>)[^>])?)+)?\s*>)[\S\s]*?</\1\s*(?=>))|(?:/?[\w:]+\s*/?)|(?:[\w:]+\s+(?:"[\S\s]*?"|\'[\S\s]*?\'|[^>]?)+\s*/?)|\?[\S\s]*?\?|(?:!(?:(?:DOCTYPE[\S\s]*?)|(?:\[CDATA\[[\S\s]*?\]\])|(?:--[\S\s]*?--)|(?:ATTLIST[\S\s]*?)|(?:ENTITY[\S\s]*?)|(?:ELEMENT[\S\s]*?))))>|[!%$#&@*()\[\]^:;/+_=.,\~-])(*SKIP)(*FAIL))|[^\p{Latin}\d\s\p{P}]~'
원시 형태 :
(?>(?><(?:(?:(?:(script|style|object|embed|applet|noframes|noscript|noembed)(?:\s+(?>"[\S\s]*?"|'[\S\s]*?'|(?:(?!/>)[^>])?)+)?\s*>)[\S\s]*?</\1\s*(?=>))|(?:/?[\w:]+\s*/?)|(?:[\w:]+\s+(?:"[\S\s]*?"|'[\S\s]*?'|[^>]?)+\s*/?)|\?[\S\s]*?\?|(?:!(?:(?:DOCTYPE[\S\s]*?)|(?:\[CDATA\[[\S\s]*?\]\])|(?:--[\S\s]*?--)|(?:ATTLIST[\S\s]*?)|(?:ENTITY[\S\s]*?)|(?:ELEMENT[\S\s]*?))))>|[!%$#&@*()\[\]^:;/+_=.,~-])(*SKIP)(*FAIL))|[^\p{Latin}\d\s\p{P}]
출처
2017-04-21 02:17:43
sln
어쩌면 <\/?.+?> (* SKIP) (* FAIL)'과 같은 | [^ \ P {라틴어 } \ d \ s \ p {P}]'그것은 HTML 요소라는 것을 실제로 검증하지는 않습니다. 단지 그 사이에 뭔가가있는'<' and a '> '을 가지고 있습니다. – chris85