Just seen there are some non digits in your input.

Then use:

(\([^\)]*\)|.)


On Saturday, July 31, 2021 at 7:14:01 PM UTC+2 jj wrote:

> Hi Howard,
>
> Here is a commented version of your regular expression.
>
> (?x)        (?# Allow whitespace and comments.                             
>  )
> (           (?# Opening of capture 1.                                     
>   )
>     .       (?# Any single character.                                     
>   )
> )           (?# Closing of capture  1.                                     
>  )
> (?!         (?# Opening negative lookahead assertion.                     
>   )
>     [^(]*   (?# Zero or more characters that are not a opening 
> parenthesis. )
>     \)      (?# A closing parenthesis.                                     
>  )
> )           (?# Closing negative lookahead assertion.                     
>   )
>
> (?!...) is a Negative lookahead assertion.
> It basically says: find occurrences of 'this' that are not followed by 
> 'that' but don't include the 'not that' in the match –– hence the 
> 'lookahead'.
>
> For a detailed explanation check the *excellent* grep documentation in *menu 
> Help > BBEdit Help > Grep Reference* link.
>
> So that says:
> "Any single character that is not followed by zero or more characters that 
> are not the opening parenthesis, followed by a closing parenthesis."
>
> The double negation makes it difficult to fathom.
>
> The negative lookahead assertion says: skip any match that is followed by 
> '...)' where ... are zero of more not '('.
> The digits of the first line are not followed by '...)' -> match.
> The first character of the second line '(' is followed by '10)' -> skip
> The second character of the second line '1' is followed by '0)' -> skip
> The third character of the second line '0' is followed by ')' -> skip
> The fourth character of the second line ')' is not followed by '...)' -> 
> match
> ...
>
> A simpler regular expression that will give the same result (and probably 
> be more performant) is:
>
> (\([^\)]*\)|\d)
>
> "Match any parentheses block or any single digits outside of parentheses 
> blocks."
>
> HTH
>
> Jean Jourdain
>
>
> On Saturday, July 31, 2021 at 6:52:48 PM UTC+2 TJ Luoma wrote:
>
>>
>> Try pasting it into https://regexr.com
>>
>> That's what I usually use to translate regex into English :-)
>>
>>
>>
>> On Sat, Jul 31, 2021 at 10:20 AM Howard <[email protected]> wrote:
>>
>>> Can someone explain how the REGEX code below works? 
>>> *(.)(?![^(]*\))*
>>>
>>> I know it looks for digits, including two-digit numbers in parentheses, 
>>> and extracts them and inserts a space after each one, but I do not know how 
>>> the code starting with *(?* works.
>>>
>>> Here is sample data for it:
>>> 010000000
>>> (10)1140006x
>>> 002200010
>>> 00000(11)01x
>>> 311200
>>>
>>> Here is output:
>>> 0 1 0 0 0 0 0 0 0 
>>> (10) 1 1 4 0 0 0 6 x 
>>> 0 0 2 2 0 0 0 1 0 
>>> 0 0 0 0 0 (11) 0 1 x 
>>> 3 1 1 2 0 0 
>>>
>>>
>>> -- 
>>> This is the BBEdit Talk public discussion group. If you have a feature 
>>> request or need technical support, please email "[email protected]" 
>>> rather than posting here. Follow @bbedit on Twitter: <
>>> https://twitter.com/bbedit>
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "BBEdit Talk" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/bbedit/aa2c7738-44c7-4d75-b64e-7cf2655ffb4an%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/bbedit/aa2c7738-44c7-4d75-b64e-7cf2655ffb4an%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
This is the BBEdit Talk public discussion group. If you have a feature request 
or need technical support, please email "[email protected]" rather than 
posting here. Follow @bbedit on Twitter: <https://twitter.com/bbedit>
--- 
You received this message because you are subscribed to the Google Groups 
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/bbedit/4e1e7ad6-fd14-4ecf-8973-c23fa8ed5e4cn%40googlegroups.com.

Reply via email to