나는 HTML에 BBcode 변환기를 쓰고있다.
변환기는 닫히지 않은 태그를 건너 뜁니다.
1) 번과 같이, 하나의 정규식 호출을 사용하여 모든 태그를 일치 :Regex BBCode to HTML
나는 그것을 할 약 2 옵션을 생각
Regex re2 = new Regex(@"\[(\ /?(?:b|i|u|quote|strike))\]");
MatchCollection mc = re2.Matches(sourcestring);
을 한 후, 2 포인터를 사용을 MatchCollection 돌이가 시작 오픈 찾아 태그 및 오른쪽 html 태그로 바꾸기보다.
2) 모든 태그에 정규식 여러 시간에 전화를 직접 교체 :
Regex re = new Regex(@"\[b\](.*?)\[\/b\]");
string s1 = re.Replace(sourcestring2,"<b>$1</b>");
을보다 효율적으로 무엇입니까?
첫 번째 옵션은 하나의 정규식을 사용하지만 모든 태그를 반복하고 모든 쌍을 찾고 한 쌍이없는 태그는 건너 뜁니다.
또 하나의 긍정적 인 점은 내가 태그 사이의 내용에 신경 쓰지 않는다는 것입니다. 단지 작업하고 위치를 사용하여 바꿉니다.
두 번째 옵션에서는 루핑 및 특수 바꾸기 기능에 대해 걱정할 필요가 없습니다.
그러나 여러 정규 표현식과 대체 코드를 실행해야합니다.
무엇을 제안 할 수 있습니까? 나는 또한 같은 멀티 라인에 맞게 문제를 해결할 수있는 방법을 정규식 \[b\](.*?)\[\/b\
]
에 문제가있는 것입니다
두 번째 옵션이 올바른 경우, :
[b]
test 1
[/b]
[b]
test 2
[/b]
문자열과 같이 작동하지 않습니다. "[b] bla bla [/ b] bla bla [b]"+ "\ r \ n"+ "bla bla [/ b]"; – ilann
정확한 코드로 테스트를 해보니 문제가 될 수 있는지 잘 모르겠습니다. 하지만 위의 코드를 복사하여 확인할 수 있다면 :) 편집 : 내 대답을 코드로 이동 – Buildstarted