Miyagiborn
Miyagiborn

Reputation: 87

Regex match multiple occurrences of a string between two strings

I'm trying to match multiple occurrences of a number between two strings.

"ELE: and ":{"isHidden":true} to get the number between.

I have (?<={"ELE:)(.*)(?=":{"isHidden":true}) but this selects the whole group.

How do I make it to only match the numbers only?

{"version":2,"(sectionConfig)":{"SECT:1236":{"children":{"ELE:1826":{"children":{"ELE:4217":{"(isHidden)":true},"ELE:22043":{"isHidden":true},"ELE:4253":{"isHidden":true},"ELE:1796":{"isHidden":true},"ELE:3907":{"isHidden":true}},"defaultSelectionId":"ELE:1781"},"ELE:1850":{"defaultSelectionId":"ELE:2657"},"ELE:1832":{"children":{"ELE:602":{"isHidden":true},"ELE:3864":{"isHidden":true},"ELE:650":{"isHidden":true}},"defaultSelectionId":"ELE:605"},"ELE:3711":{"isHidden":true}}},"SECT:2789":{"children":{"ELE:3923":{"isHidden":true},"ELE:3932":{"isHidden":true},"ELE:3920":{"isHidden":true},"ELE:3929":{"isHidden":true},"ELE:3938":{"isHidden":true},"ELE:3917":{"isHidden":true},"ELE:3926":{"isHidden":true},"ELE:3935":{"isHidden":true},"ELE:2834":{"isHidden":true},"ELE:2837":{"isHidden":true},"ELE:2960":{"isHidden":true},"ELE:2675":{"isHidden":true},"ELE:2933":{"isHidden":true},"ELE:2690":{"isHidden":true},"ELE:2717":{"isHidden":true},"ELE:3011":{"isHidden":true},"ELE:2681":{"isHidden":true},"ELE:2723":{"isHidden":true},"ELE:2693":{"isHidden":true},"ELE:2795":{"isHidden":true},"ELE:3014":{"isHidden":true},"ELE:2708":{"isHidden":true},"ELE:2975":{"isHidden":true},"ELE:2729":{"isHidden":true},"ELE:2996":{"isHidden":true},"ELE:2987":{"isHidden":true},"ELE:2672":{"isHidden":true},"ELE:2684":{"isHidden":true},"ELE:2669":{"isHidden":true}}},"SECT:2531":{"children":{"ELE:1862":{"children":{"ELE:26661":{"isHidden":true},"ELE:26682":{"isHidden":true},"ELE:26631":{"isHidden":true},"ELE:26601":{"isHidden":true}},"defaultSelectionId":"ELE:647"},"ELE:2690":{"isHidden":true},"ELE:2637":{"isHidden":true},"ELE:2485":{"isHidden":true},"ELE:1832":{"children":{"ELE:650":{"isHidden":true},"ELE:602":{"isHidden":true}},"defaultSelectionId":"ELE:605"},"ELE:2599":{"isHidden":true},"ELE:2521":{"isHidden":true},"ELE:1826":{"children":{"ELE:27478":{"isHidden":true},"ELE:27469":{"isHidden":true},"ELE:27460":{"isHidden":true},"ELE:27445":{"isHidden":true},"ELE:27436":{"isHidden":true},"ELE:27427":{"isHidden":true},"ELE:1796":{"isHidden":true},"ELE:4217":{"isHidden":true},"ELE:22043":{"isHidden":true},"ELE:27115":{"isHidden":true},"ELE:3907":{"isHidden":true}},"defaultSelectionId":"ELE:1781"}}}}}

Upvotes: 3

Views: 1285

Answers (1)

Wiktor Stribiżew
Wiktor Stribiżew

Reputation: 626689

You can use

(?<="ELE:)\d+(?=":{"isHidden":true})

See the regex demo.

Details

  • (?<="ELE:) - "ELE: must appear immediately to the left of the current location
  • \d+ - one or more digits
  • (?=":{"isHidden":true}) - ":{"isHidden":true} must appear immediately to the right of the current location.

Regex graph:

enter image description here

Upvotes: 2

Related Questions