나는 iCal의 항목으로하고 있어요 :RegEx - 텍스트 내에서 일치하지 않습니까?
BEGIN:VEVENT
UID:944f660b-01f8-4e09-95a9-f04a352537d2
ORGANIZER;CN=******
DTSTART;TZID="America/Chicago":20100802T080000
DTEND;TZID="America/Chicago":20100822T170000
STATUS:CONFIRMED
CLASS:PRIVATE
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE
X-MICROSOFT-DISALLOW-COUNTER:TRUE
DTSTAMP:20100802T212130Z
SEQUENCE:0
END:VEVENT
BEGIN:VEVENT
UID:aa132e2b-8a8d-4ffc-9e54-b75249e78c72
RRULE:FREQ=DAILY;COUNT=12;INTERVAL=1
SUMMARY:***********
X-ALT-DESC;FMTTYPE=text/html:<html><body><div style='font-family:Times New R
oman\; font-size: 12pt\; color: #000000\;'></div></body></html>
LOCATION:Map Room
ORGANIZER;CN=*********
DTSTART;TZID="America/Chicago":20100730T080000
DTEND;TZID="America/Chicago":20100730T170000
STATUS:CONFIRMED
CLASS:PUBLIC
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE
X-MICROSOFT-DISALLOW-COUNTER:TRUE
DTSTAMP:20100727T025231Z
SEQUENCE:0
EXDATE;TZID="America/Chicago":20100810T080000
EXDATE;TZID="America/Chicago":20100807T080000
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;RELATED=START:-PT5M
DESCRIPTION:*********
END:VALARM
END:VEVENT
내가 번 시작 및 종료 구문 분석 할 필요가있다. 전달 된 이벤트가 두 번 사이에 있는지 비교하는 함수가 있습니다. 재발 시리즈를 지원하지 않을 계획 인 시간 계산의 복잡성 증가로 인해 안전한면을 가지고 코드 만 첫 번째 이벤트를 두 번째가 아닌 일치로 읽도록하고 싶습니다.
BEGIN:VEVENT.+?
DTSTART;.+?([0-9]{8})T([0-9]{6})
DTEND;.+?([0-9]{8})T([0-9]{6}).+?
END:VEVENT
이 나에게 두 항목의 시작 시간과 종료 시간을 가져옵니다 그래서 나는 다음 한 줄 옵션와 정규식이있다. 내 생각은 BEGIN : VEVENT와 DTSTART 사이에 FREQ=
이없는 것들만 일치시키는 것이었다. 그러나 나는 이것을 어떻게하는지 이해하지 못합니다. 누군가 내가 여기서 도울 수 있는지 궁금 해서요?
필자는 특정 시점에서 완전한 파서가 더 나은 옵션이라는 것을 알고 있지만, 파서에게는 익숙하지 않으며 약간의 시간 제약을 받고 있습니다. 을 사용해 보았습니다! 교환 원 성공하지 못했습니다.
라인'을 시작하려면 1 바뀝니다.?.? VEVENT + (!? FREQ는 =) +'때 나는 시도했다!? 운영자. 나는 PHP를 사용하고 있지만 PCRE와 A/전후에 s 옵션을 사용해야한다. –
@Josh : 수정 된 정규식을 추가했습니다. Expresso에서 작동하지만 Expresso는 .NET 기반이며 PHP 테스트 환경이 없습니다. – FrustratedWithFormsDesigner
잘 작동합니다. 그건 완벽하게 작동합니다. 고맙습니다! –