3

我实际上正在使用:

(.*?)=(.*?);


但由于它包含逗号,它无法正确解析。
您可以在此处测试模式 > http://gskinner.com/RegExr/

这是 cookie 字符串:

Set-Cookie: PAGE_VIS=A|186.213.98.144|1381089446.485193|; domain=PAGE; path=/; expires=Mon, 07-Oct-2013 06:00:00 GMT,CSASF=;Version=1;Domain=PAGE;Path=/;Max-Age=7776000,CSAPAGES=ekpEOWluWTZSMXpDSWRMMm8wWWZ3UT09|5749|kNm6h4hlOB4SwLFg2gOIMXXpmTXDD5tnvB/dJ7AS3mUqUiLtpHLxzsWjfKsI1rcq6fp/DKre3QHAZHPQi968iw==;Version=1;Domain=PAGE;Path=/;Max-Age=7776000;HttpOnly,NAM_LOGIN_DEFAULT=user;Version=1;Domain=PAGE;Path=/;Max-Age=129600,UPL09=2-25|39|54|56|58|90|91|105|106|156|182|212|218|219|242|245|248|284|285|480|1222;Version=1;Domain=PAGE;Path=/;Max-Age=2592000,PAGE_OTR=;Version=1;Domain=PAGE;Path=/;Max-Age=2592000,CAUBR01=5eeOUuDdqyj+ILCQ7oOg71yXEgIGi2KJ7bjDiTt27tTXgjT7jqC49eGprgjZ+8rQ7O7mqG/qEq28u4EXAiEbfE0qqI9QqUrj27LrEAi4kSZacSSTAo5YY+yQZYFr4qGgCp18odS/Y92mkEtqEuCoxuG+qsK5fhOJmKQqqpxqE07ORqEn2JGEhOHVmoQqqKCqEq78+2EMqtKZlrvMqv2qmKMqEqqOIqZ72NKGRxO2mKeskKwkZq2CH7GrC+GGoKOCqOVmqEOqEkbr82EjqcGKVHoQqn2qkEMqKk2xLqEk20EEtSr2qo2kqErqEqqODqZh7YKGtxK2mCesmEMsGqVSTMZb24EKuMrTqw2qqEoqEqqK92ZUMnKZsOKqmo2kqEOkEq2KzqKpVvKZlOCMqo7qqGMmKq2oMeEiMXGZBKMqqOQqqKxqZsqv2VK32tEG+Cr7kH2qqEKqEmqCT7G726ZGgK9qsxVmqKOqGkqMkrKVq1ZENoOesKMqmZKqKq7x82G1ehGKWxKVmoqqqZCsEqVOqqE/2JKZJOKMqK2sqZMkKqJOCMZb7YEKKMKTqCqqmGosGqVxq2EHqgKE0rKqqKqqqKCkEq7xJqGieDGKUKKVmoqqqZCsKq7KCqZ/VDKZZKCMqw7kqGMmKqqoQeK+MsGZpKMqqKuqqKxqZsqKb2EXC8GZkKO2kO9sqKOqEkQxmqGTeQKKIHK/qoqqqZxsKq9OdqGZ2sKZoKKMqK2msZMkEqQKbMZI7PKK3MKVqCqqmEosGqVKHqZBc9KGOxoqqMesqKtqKqMK/2ZFqtZZEOKqqO2kqGosGq2KfcKxqhEKq9xQqK7qsGOqZqeoQMZn7NGK2MK7qCqqmZokGqVKsqZjuLKGjxo7qMesqGwqKqMCj7G07AZGwK9qqxVmqKoqGkqMorKwqsZG4ooesOMqmZKqKq2xA2Kh2aEETMw2kO7qqEoqEq7MLVKIqfEGRoo/qKMqsZKqEq7xr7GxeMGKutKVmoqqqZCsGqcK9qZGVHKZCrCMqO7qqGMmKqQo3eZeMoGZ8KMqqrqkqKxqZsqrtVKrqhGGUCx7qKQqsGKqZmerqMZF79ZKRMKbkCqqmKokGqVKzqZGCZKGTxoQqMesqZ8kKqMCG7GhQFZECKnqqxVmqKrqGmqMKMKUqjZZXoresKMqsZKqZk7xcQGzeHGKB4KVmOqqkZCsZqTrF2Z07gEGstKbqCqqmGOsGqVKeqZ52DKGhxobqMesqECkKqMCD7GLb8ZKxKoqqxVmqKwqGqqM/QKqq9ZEqowesKMqkZKqEk7x0bGreJGKlvKVmoqqkZCsEqJKbqZuViKZDwCMqH7mqGMmKqboQeEtM0GZHKMqqw9kqKxqZsqM7VKsq9GGoCx7mKbqsGKqZmewdMZV7VEKeMK/kCqqmKosGqVK0qZseQKGqxobqMesqKSkKqMC97GOuBZEkKKqqxVmqKvqGqqMe7KEqDZKDovesKMqkZKqZk7x6uGEedGKtwKVmoqqkZCsKquKjqGHVtKZTvCMq97kqGMmKquoNeKJMrGZXKMqqvrkqKxqZsqxEVKqqFKGQCx7mKuqsGKqZmevrMZm7wKKdMKVkCqqmEosGqVKLqZecvKGNxouqMesqKtkKqMCv7GbJjZZ1KOqqxVmqK8qGqqMlqKyqLZGIo8esKMqqZKqGk7xFJGuetGK/rKVmoqqkZCsGqbKsqKKVsKZr8CMq87kqGMmKqJoteGYMqGZGKMqq8CkqKxqZsqnzVKdq3EGZCx7mKJqsGKqZme8xMZQ7TGKsMKMkCqqmZosGqVKDqZFThKGxxoJqMesqG4kKqMCo7G7C0ZGFKCqqxVmqK8qGsqM72KSqiZZwo9esKMqqZKqKm7mGVC;Version=1;Domain=PAGE;Path=/
4

3 回答 3

9

我认为这可能对你有用:

(.*?)=(.*?)($|;|,(?! ))

最后一部分是说:
$字符串结尾|或...
;分号|或...
,(?! )逗号后面没有空格

结果

最好的办法是实际上与你的分隔符保持一致(一直使用分号)......这似乎有点奇怪,但我认为它适用于你的情况,因为所有逗号你都不想split at 后面似乎跟着一个空格,我可以告诉你......(只要你的数据没有变成像“foo = bar,baz; blah = foo”)。

于 2013-10-07T20:01:09.533 回答
5

我建议使用负前瞻:

(.*?)=(.*?)(?:;|,(?!\s))

比赛的第二部分将以逗号结尾,后面没有空格,唯一跟在空格后面的逗号似乎是在日期中,而它在其他任何地方都被用作分隔符。

于 2013-10-07T20:10:31.233 回答
4

以下内容将在 a,和 a处分开;,但是,我认为您不应该在逗号处分开!此正则表达式还将匹配字符串中的最后一个条目,因为该条目缺少;.

所以你基本上想用逗号和分号而不是分号分开?但是你希望这如何工作?似乎有一些有效的情况下,逗号并不意味着分割......比如“Mon,07-......” – smerny

(.*?)=((.*?)[;,]|.*$)

于 2013-10-07T20:05:32.940 回答