붙어 나는이 내 DB의 필드에 포함 된 다음 텍스트 :정기적 인 C#을 표현
[quote:5a7b87febe="mr smith"]This is some text.
This is more text on another line.[/quote:5a7b87febe]
내가으로, 위의 같은 인스턴스를 변환하는 정규 표현식을 구성하려합니다 :
를<div><h4>Posted by mr smith</h4>This is some text.
This is more text on another line.</div>
지금까지 작성한 패턴은 둘러싸인 텍스트에 줄 바꿈이없는 경우 작동하지만 위 예제에서는 다른 줄에 텍스트가있는 경우 패턴이 일치하지 않습니다.
내가 지금까지 가지고있는 C# 코드는 다음과 같습니다
var exp = new Regex(@"(\[quote)(:\w+=\"")(.*?)(\""\])(.*?)(\[\/quote)(:\w+\])");
var str = exp.Replace(str, "<div><h4>Posted by $3</h4>$5</div>");
내가 그렇게 개폐 '인용'태그 사이에 표시 '어떤'문자를 처리하는 방법을 확실하지 오전 정규 표현식에서 쓰레기입니다.
가능하면 위 예제의 중첩 된 인스턴스를 처리하는식이 이상적입니다.
'quote :'태그 다음에 오는 일련의 문자는 매번 고유하며, 따옴표 안에있는 이름도 달라질 수 있습니다.
'RegexOptions.SingleLine'? – Rawling
예. 당신의 대답은 틀린 길이었습니다. SingleLine의 문서에서 : "단 일행 모드를 지정합니다. \ n을 제외한 모든 문자 대신 모든 문자와 일치하도록 도트 (.)의 의미를 변경합니다." – Richard
충분히 공정 :) 어쨌든 내 표를 얻습니다. 이 질문은 유용한 정보를 남기지 않으므로 답변을 삭제하겠습니다. – Rawling