데이터베이스의 외래 키를 포함하는 특정 섹션을 추출하기 위해 매우 복잡한 문자 문자열을 구문 분석해야합니다 (스 니펫은 Interspire Email Marketer라는 제품에서 가져온 것으로, 연락처 목록을 필터링하는 이상한 논리).Ruby에서 복잡한 문자 문자열 구문 분석
다음과 같이 문제의 문자열입니다 (예, 나는 그것이 매우 이상한 실현 그건 어떻게 시스템 저장합니다.) :
a:2:{s:5:"Lists";a:1:{i:0;s:1:"6";}s:5:"Rules";a:1:{i:0;a:3:
{s:4:"type";s:5:"group";s:9:"connector";s:3:"and";s:5:"rules";a:1:{i:0;a:3:
{s:4:"type";s:4:"rule";s:9:"connector";s:3:"and";s:5:"rules";a:2:
{s:8:"ruleName";s:3:"100";s:12:"ruleOperator";s:7:"isempty";}}}}}}
내가 필요로하는 부분 {i:0;s:1:"<here>";}
그러나 그것은 단지 하나 이상의 수 있습니다 캐릭터. 어떻게이 이상한 문자열을 파싱하고 Ruby에 필요한 번호를 추출 할 수 있습니까?
파서는 어떻게 그 부분을 추출한다는 것을 알고 있습니까? 그것은 i와 s에 대한 가치가 있기 때문에? i는 0이고 s는 1이기 때문에? 즉, {i : \ *; s : \ * : "\ *"}를 찾으십니까 \ *는 무엇이든 될 수 있습니다. 아니면 내가 찾고 있어요 : 0; s : 1? 또는 다른 것? – DigitalRoss
더 많은 샘플을 검사하고 모두에 대해 true 인 ""문자열을 찾는 방법을 찾아야합니다. –
Inshallah