내가의 패턴에서 짧은 문자열의 무리가 있습니다정규식 스캐너
<text @varible1 more text><, @variable2 text ><@variable3 text text>
@variableN 장소 홀더이다를, 각 브래킷은 동봉 된 varibale 빈 문자열 인 경우 있음을 나타내는 '섹션'입니다 , 'section'은 없을 것입니다. 정규 표현식을 사용하여 각 섹션을 추출한 다음 해당 변수가 비어 있는지 여부에 따라 전체 문자열을 다시 어셈블 할 생각입니다. 내가 @ 변수 1 =를 전달하는 경우 예를 들어, '안녕하세요'전체 문자열 @ variabl3 = '세계'로 복귀한다
text hello more text, world text
먼저 나는 어쩌면 내가 작업을 수행하는 데 충분한 정규식 트릭을 사용할 수 있다고 생각에서. 그런 다음 '섹션'이 중첩 될 수 있음을 발견했으며 - 분명히 - '<', '>'및 '@'와 같은 몇 가지 특수 문자를 이스케이프해야합니다. 더 많이 생각할수록 DSL처럼 보입니다. 어쩌면 스캐너를 개발하는 것이 더 좋은 생각일까요? 나는 파서 작성에 대해서만 알고있다. 그래서 나는 좀 붙어 있었고, 어떤 길로 갈지 모릅니다.
누구나 이런 종류의 시나리오에 경험이 있다면, 그걸 밝혀주십시오. 감사.
구문 예제
<text @varible1 more text><, @variable2 text ><@variable3 text text>
<text @varible1 more text><, @variable2 <, @nestedVaraible> text \<@userName\> > # with nesting and escaping
<text @varible1 more text><, @variable2 text ><@variable3 \@twitterAccount> # escaping‘@
의 JSLint '당신이이 경우에 재미있을 것 자신의 파서를 작성하기위한 아래 경우
사용하는 언어를 언급하면 안내하기가 더 쉬울 수도 있습니다. 누군가는 이미 구성 할 수있는 것을 가지고 있습니다. 확실히 저에게 파서 문제 같이 소리가 난다. – fncomp
PHP 또는 Python이 좋을 것입니다. – Shawn
Gotcha, 몇 줄을 게시하여 구문의 요지를 얻을 수 있습니까? 아마, 나는 [BeautifulSoup] (http://www.crummy.com/software/BeautifulSoup/documentation.html)을 적용 할 것을 제안 할 것이다. – fncomp