2013-08-12 1 views
0

나는 현재 내가 reReplaceNoCase에 구문 분석하려고 문자열에 다음과 같은 HTML이 :ColdFusion에서 정규 표현식은 html 태그에서 콘텐츠를

{{1241}} 
<p>Test</p> 
{{2441}} 
: 내가 좋아하는 것
<blockquote class="id-1241"> 
<p>Stuff</p> 
</blockquote> 
<p>Test</p> 
<blockquote class="id-2441"> 
<p>More stuff</p> 
<blockquote> 
<p>Test</p> 
</blockquote> 
</blockquote> 

결국에이 변환하기를

그래서 나는 blockquote 클래스에서 id를 꺼내어 그것을 사용하여 blockquote를 대체한다. 현재이 작업을 수행하기 위해 reReplaceNoCase을 사용하고 있지만, 올바른 결과를 초래하는 올바른 blockquote 열기 태그에 '연결된'대신에 마지막 닫기 blockquote 태그의 끝에 일반 표현식이 끝나는 것을 보았습니다.

{{1241}} 

이 내가 현재 사용하고 무엇을 :

reply = reReplaceNoCase(reply, '<blockquote class="id-([0-9]+)">(.*)</blockquote>', '{{\1}}', 'ALL'); 

는 아무도 내가 원하는 것입니다 결과에 더 나은 예를 들어이 있습니까? 나는 reFind, 또는 그 라인을 따라 무언가를 루프를 사용할 수있을 것 같아요,하지만 이것은 너무 많은 번거 로움 것, 나는이 일을 쉽게하는 방법이 있고, 더 나은 성능을 가지고 있다고 생각합니다.

가능하면 자바를 직접 사용하지 않는 것이 좋습니다.

+0

중첩 된 블록 따옴표에 클래스 속성이 포함될 수 있습니까? –

+0

아니요, 중첩 된 클래스에는 클래스 속성이 없습니다. (최소한, blockquotes - blockquotes 안의 다른 태그들도 가능합니다.) –

+0

정규 표현식만을 사용하여이 문제를 해결할 수있는 사람을 찾으면 중첩 된 구조를 정규식으로 구문 분석 할 수 없기 때문에이 작업을 수행 할 수 없습니다. 저에게 알려주세요. –

답변

0

나는 jQuery를 사용하여 끝냈다 - 나는 클라이언트 측에서 그것을하고 싶지 않았지만, 내가 일하는 회사는 너무 많은 라이브러리에 의존하기를 좋아하지 않는다. 이미 우리는 꽤 많은 무리가있다.

jQuery에서 어떻게 작성했는지 설명 할 필요가 없다고 생각합니다. jQuery의 요소를 변경하는 데 이미 수 많은 튜토리얼이 존재합니다.

+1

코드를 여기에 게시하면 "google for the answer"라고 말하는 것보다 미래의 독자에게 더 유용 할 것입니다. 시간이 없으면 스레드를 삭제하기 만하면됩니다. – Leigh