2016-08-08 2 views
0

정규식 검색에 어려움을 겪고 있습니다. 내 경우에는 특정 태그 사이의 문자를 제외한 모든 문자를 선택해야합니다. 선택한 텍스트로 'epicuri qualisque ID를 앉아'+ '난 그냥 로렘 입숨 슬픔이 AMET 앉아 원하는'특정 태그 사이의 내용을 제외하고는 enything과 일치합니다.

Lorem ipsum dolor sit amet [original]don't select this[/original], sit epicuri qualisque id.

:처럼 내 텍스트가 보일 것이다. 나는 내 구를 제외하고 모든 문자를 선택하려고했지만 이해하지 못합니다. 첫 번째 발생 작품보다 그룹에 넣으면 더 많은 태그가있는 경우 원하는 결과를 얻을 수 없습니다.

내가 어떻게이 목표를 달성 할 수 있을지에 대한 조언이 있으십니까?

답변

0

캡처 그룹을 사용하여 원하는 캡처 그룹의 모든 것을 가져올 수 있습니다.

^((?:(?!\[original\]).)+)\[original\](?:(?!\[\/original\]).)+\[\/original\](.+)$ 

는 전체 경기 전체 라인과 일치하는 그룹 2를 포착 한 후 그룹 1, 모든 것을 포착 태그 전에 모든 것을 넣어 것입니다,하지만 사이의 태그와 모든 것을 그룹에서 캡처되지 않습니다.

참고 : 태그가 두 개 이상인 경우에는 작동하지 않습니다. 원하는 경우 질문을 수정하여 반영하십시오. R 나르 내가 원하는 결과를 달성하기 위해, 정규식 분할의 조합/가입 다른 접근법을 사용하는 제안 된 바와 같이

regex101

+0

덕분에 나르, 아주 가까이, 당신은 내가 텍스트로 표시 할 수 이상의 태그가 필요 눈치 방망이를 R. – bigcat

+0

@bigcat 그 경우에는 정규 표현식을 사용하지 않고도 더 나은 결과를 얻을 수 있다고 생각합니다. –

+0

어떤 아이디어가 어떻게 R Nar? 선택 후 텍스트를 조작하고, 필터를 적용한 다음 에코를 적용하여 원본을 변경하지 않고 텍스트를 유지해야합니다. 어떤 아이디어라도 감사합니다. 감사 – bigcat

0

테스트.

먼저 I 단어

일단 I 원하는 부분의 변형을 적용하고, 변환이 완료되면, I 다시 모두를 함께 넣어 방법 합류 사용 스플릿

let words = input.split(/([original]|[/original])/);

의 어레이를 만들 수있는 자바 스크립트 스플릿을 사용했다.

input = words.join("");

관련 문제