2010-03-24 10 views
2

현재 [cfe]를 고객 프런트 엔드의 루트로 바꾸는 것과 같이 일반적으로 사용되는 문자열을 대체하는 페이지 렌더링 방법에서 대체 기능을 구현하고 있습니다. 이 값은 사이트 버전에 따라 다를 수 있습니다. 예를 들어 이미지 폴더의 루트 ([imagepath])는 개발 및 라이브의/Images이지만 테스트의/Test/Images입니다.토큰 교체

[productName]을 해당 제품의 카탈로그 페이지 링크로 변경하려는 제품 카탈로그가 있습니다. 전체 페이지를 살펴보고 [someValue]의 모든 인스턴스를 관련 링크로 대체하고 싶습니다. 현재는 제품 데이터베이스의 모든 제품을 반복하고 [productName]을 해당 제품의 카탈로그 페이지에 대한 링크로 바꿉니다. 그러나 이는 데이터베이스에있는 제품에만 국한됩니다. 제거 된 제품에 대한 "링크"는 현재 대체되지 않으므로 [someValue]가 사용자에게 표시됩니다. 이것은 좋지 않습니다.

이렇게 내 문제를 볼 수 있어야합니다. 누구든지 내가 쉽게하고 싶은 것을 성취 할 수있는 방법을 알고 있습니까? regexes를 사용할 수는 있지만 그다지 많은 경험이 없습니다. 이것이 가장 쉬운 방법이라면 "For Each Match For String in Regex.Matches (blah, blah)"를 사용하면 더 자세히 살펴볼 수 있습니다.

그러나이 시점에서 나는 [layout type = "3colImageTopRight"imageURL = "imageURL"]을 사용하여 오른쪽 상단에 이미지와 함께 3 개의 열과 같은 페이지 레이아웃을 설정하는 것과 같은 것을 추가하고 싶습니다. 여기에 내용 [/ layout] . 지금은 이런 일을 할 수 있다고 생각 합니다만, imageURL이 regex.match ("[[a-zA-Z] { 0,}] ") 나는 (layout type ="3colImageTopRight "imageURL ="[Image : Product01.gif] "와 일치 할 것이라고 생각한다. (layout 태그의 끝까지 가지 않을 것이다. 나는 일치 문자열이나 다른 것에 큰 따옴표를 포함시키지 않았지만 일반적 아이디어를 얻었습니다. 내가 무엇을 얻고 있는지 그리고 무엇을하려고하는지에 대한 일반적인 아이디어를 얻을 수 있어야합니다.

어떤 생각이나 포인터가 나를 도울 수 있습니까? 또한 이것이 엄밀히 토큰 교체가 아니라면 그게 무엇인지 가르쳐주세요. 그래서 나는 이것을 더 개발할 수 있습니다.

Aristos - 희망 재 설명 이것은 혼란을 해결합니다. 사전에

감사합니다,

감사합니다,

리처드 클라크

답변

0

@RichardClarke - 나는 및 비트와 그들이 당신이 생각하는 것 같은 배우로 끔찍한 아니에요, 정규 표현식으로 갈 것 신중하게 사용하면 문제가 해결됩니다.

저는 항상 이것을 매우 유용한 도구로 생각했습니다.

http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx 

은 컨닝 페이퍼 ;-)

http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/ 

행운과 잘 간다.