我有这个正则表达式:
\w*Ticket=([^;]*)
提取Cookie值:
Set-Cookie: SammerceTicket=njzOXt9BZ0Kn04ht2JM66Aj5xGKqmYbH/17BwwBA12vMkomyHG57fs4B2nWAh67/JAdzF2TvS5/f9lI/207vpw==; domain=.sammerce.com; path=/; expires=Tue, 07-Jan-2020 14:19:20 GMT; HttpOnly
在https://www.freeformatter.com/java-regex-tester.html之类的在线正则表达式测试器中进行测试时,它就像是一种魅力。
但是当在我的Android Java代码中使用以下代码进行测试时:
Pattern pattern = Pattern.compile("\\w*Ticket=([^;]*)", Pattern.MULTILINE);
Boolean isMatch = pattern.matcher("\"Set-Cookie: SammerceTicket=njzOXt9BZ0Kn04ht2JM66Aj5xGKqmYbH/17BwwBA12vMkomyHG57fs4B2nWAh67/JAdzF2TvS5/f9lI/207vpw==; domain=.sammerce.com; path=/; expires=Tue, 07-Jan-2020 14:19:20 GMT; HttpOnly").matches();
我弄错了。为什么它在Android Java中不起作用?
更新:仅当它是具有特定模式的cookie时,我才有兴趣提取cookie的值。其他cookie将被忽略。在这种情况下,当且仅当其名称包含一个单词后跟Ticket
时,我才需要提取cookie的值。