I am using
(?<![\d.])[0-9]+(?![\d.])
This does the job for me but I can't use it as it says "couldn't compile regular expression pattern: quantifier operand invalid while executing"
I'm looking for any equivalents.
Tcl regex does not support lookbehinds, although it supports lookaheads.
You can use something like
set data {12 3.45 1.665 345}
set RE {(?:^|[^0-9.])(\d+)(?!\.?\d)}
set matches [regexp -all -inline -- $RE $data]
foreach {- group1} $matches {
puts "$group1"
}
Output:
12
345
See the online demo. The (?:^|[^0-9.])(\d+)(?!\.?\d) regex matches
(?:^|[^0-9.]) - start of string or a char other than a digit and a dot(\d+) - Group 1: one or more digits(?!\.?\d) - a negative lookahead that fails the match if there is an optional . and then a digit immediately to the right of the current location.