1
a:29:{i:0;s:2:"34";i:1;s:2:"35";i:2;s:2:"37";i:3;s:2:"36";i:4;s:2:"38";i:5;s:2:"41";i:6;s:2:"33";i:7;s:2:"17";i:8;s:2:"20";i:9;s:2:"18";i:10;s:2:"19";i:11;s:2:"22";i:12;s:2:"23";i:13;s:2:"16";i:14;s:2:"21";i:15;s:2:"43";i:16;s:2:"70";i:17;s:2:"91";i:18;s:2:"50";i:19;s:2:"48";i:20;s:2:"49";i:21;s:2:"53";i:22;s:2:"47";i:23;s:2:"46";i:24;s:2:"44";i:25;s:3:"106";i:26;s:3:"121";i:27;s:2:"95";i:28;s:2:"86";}

I need to get the values inside the {}, that are between ""

akash
  • 22,664
  • 11
  • 59
  • 87
  • R way https://www.r-bloggers.com/how-to-extract-a-string-between-2-characters-in-r-and-sas/ – wololo Aug 22 '16 at 04:37
  • 4
    Possible duplicate of [RegEx: Grabbing values between quotation marks](http://stackoverflow.com/questions/171480/regex-grabbing-values-between-quotation-marks) – Sebastian Simon Aug 22 '16 at 04:46

3 Answers3

1

You can using this "\w*". Here is the test.

Liping Huang
  • 4,378
  • 4
  • 29
  • 46
1

By far better would be to use unserialize() (if you're under PHP):

$str = 'a:29:{i:0;s:2:"34";i:1;s:2:"35";i:2;s:2:"37";i:3;s:2:"36";i:4;s:2:"38";i:5;s:2:"41";i:6;s:2:"33";i:7;s:2:"17";i:8;s:2:"20";i:9;s:2:"18";i:10;s:2:"19";i:11;s:2:"22";i:12;s:2:"23";i:13;s:2:"16";i:14;s:2:"21";i:15;s:2:"43";i:16;s:2:"70";i:17;s:2:"91";i:18;s:2:"50";i:19;s:2:"48";i:20;s:2:"49";i:21;s:2:"53";i:22;s:2:"47";i:23;s:2:"46";i:24;s:2:"44";i:25;s:3:"106";i:26;s:3:"121";i:27;s:2:"95";i:28;s:2:"86";}';
$your_var = unserialize($str);
print_r($your_var);

Afterwards, you'll have a beautiful array, see a demo on ideone.com


To provide another, less appropriate solution:
\w+:"(\w+)"

See a demo for this one on regex101.com.

Jan
  • 42,290
  • 8
  • 54
  • 79
0

I'm not sure if it's a possible scenario, but you mention "inside the {}", so if unwanted quoted numbers can occur outside the braces, this should do it for you:

"(\d+)"(?=[^{]*})

It matches the number inside quotes, then using a positive look-ahead, makes sure a } follows before any {.

See it here at regex101.

SamWhan
  • 8,296
  • 1
  • 18
  • 45