0

現在、私は私のJavascriptコードで次の正規表現を使用しています:

'(?:' + tags + '):([\\s\\S]*?)(?=\\s+(?:' + tags + '|END):)'

..これは動的正規表現であるため、変数「タグ」は、フィルター処理するいくつかのパラメーターに使用されます。

RegEx は PHP コードではどのように見えるでしょうか? 私は次の部分作業を取得します:

(?:' + tags + '):([\\s\\S]*?)

しかし、2番目の部分は、何を試してもPHPでは機能しません:

(?=\\s+(?:' + tags + '|END):)

ご協力ありがとうございました!

編集1:

私の現在のPHPコードは次のようになります。

$regexp = '(?:'.$tags.'):([\\s\\S]*?)(?=\\s+(?:'.$tags.'|END):)';

編集2:

次のタグ/パラメータを見つけようとしています:

$tags = 'X-WR-CALNAME|X-WR-TIMEZONE|X-WR-CALDESC|BEGIN|CLASS|DTSTAMP|UID|CREATED|LAST-MODIFIED|SEQUENCE|STATUS|TRANSP|X-MICROSOFT-CDO-BUSYSTATUS|ORGANIZER|SUMMARY|DESCRIPTION|LOCATION|DTSTART|DTEND|END';

...次のようなテキストから:

BEGIN:VEVENT DTSTART:20121117T143000Z DTEND:20121117T163000Z DTSTAMP:20121130T185808Z UID:n3f3qjgtads37phsq3oovmvouc@google.com CREATED:20121102T191518Z 説明:1. ブンデスリーガ\, 12. Spieltag \n\nhttp://www.fussball-spielplan. info LAST-MODIFIED:20121117T170303Z LOCATION:Imtech-Arena\, Hamburg SEQUENCE:0 STATUS:CONFIRMED 概要:Hamburger SV - 1. FSV Mainz 05 (1:0) TRANSP:TRANSPARENT END:VEVENT

..適切なタグ/パラメータのすぐ隣の値を取得するため。

4

1 に答える 1

0

The regex seems to work when delimiters (the / at the start and end of the pattern) are added.

$regexp = '/(?:'.$tags.'):([\s\S]*?)(?=\s+(?:'.$tags.'|END):)/';

There is no need to escape the \ in php regex strings unless you are trying to match a literal "\" (in which case '\\\\' must be used) - although it is fine to do so.

于 2013-03-12T16:03:15.340 に答える