2

私は正規表現の開発に非常に慣れていません。次の 2 つの文字列の一般的な正規表現を作成するのに役立つ人はいますか?

  1. オフセット = 0 & fileGuid = 1014fc48-6eb3-4fff-8242-96f5a496b0ee
  2. file=Arnold+P+Gleit+Contract+Information.pdf¶m=CommandType=1.1.2.1~ProjectID=13979~FolderID=1344972~UserID=13395& fileGuid=51c01e15-ac3c-4d2d-bdc9-4e63251a0364 &location=CommandType=1.1.2.1~ ProjectID=13979~FolderID=1344972~UserID=13395&size=28357151&title=&desc=&searchtags=&OnDuplicateAction=2& offset=1703936 &first=True&last=False

私の意図は、「offset」と「fileGuid」の値を取得し、データを Hive テーブルにロードすることです。私は正規表現で試しました -

"input.regex" = "offset=([0-9]+).*\\&fileGuid=([a-zA-Z0-9]+\\-[a-zA-Z0-9]+\\-[a-zA-Z0-9]+\\-[a-zA-Z0-9]+\\-[a-zA-Z0-9]+)"

これは最初の文字列では機能しますが、2 番目の文字列では失敗します。

前もって感謝します。

4

1 に答える 1

0

これでうまくいくはずです:/offset=([^&$]+)|fileGuid=([^&$]+)/

基本的には一致offset=<string to next & or end of line>するか、fileGuid=<string to next & or end of line>

例: http://regexr.com?34t57

また、offset/fileGuid 文字列を一致に追加して、どれがどれであるかを簡単に確認できるようにすることも便利な場合があり(offset)=([^&$]+)|(fileGuid)=([^&$]+)ます。

于 2013-05-16T13:42:14.413 に答える