[TxMt] Re: How can I find and replace carriage returns?
Rasmus Malver
rasmus at malver.dk
Sun Feb 7 18:56:12 UTC 2016
To learn more about RegEx, I can recommend Regexr.com
<http://regexr.com/3coa1> (with your case <http://regexr.com/3coa1>). It
is based on the JavaScript implementation, so there are limits, but it's
a good start.
As Carpii said, you define “capture groups” with parentheses. TextMate
Find & Replace behaves like PHP's preg_match
<http://php.net/manual/en/function.preg-match.php>, so the “entire
match” is in |$0|. In this case you need the entire line unbroken, so
that's why |$0| works.
If instead you want to change:
|PRODUCTS 2::prnt_material_width |
to
|getValue( PRODUCTS 2 ; prnt_material_width ; 1) ;|
You would need to match the two groups separately:
|^(.+)::(.+)$|
Replace with:
|getValue( $1 ; $2 ; 1) ;|
I use |+| instead of |*|, because |+| requires a minimum of 1 character.
It's a habit.
And of course there are many practical applications to knowing regular
expressions <http://xkcd.com/208>.
Rasmus
On 07/02/16 19.14, Carpii UK wrote:
>
>
> Can you please help me understand what is happening between these
> two expressions?
>
> ^ beginning of the line
>
> .*::.*
>
>
> $ end of the line
>
>
>
>
> ^ match the beginning of the line
>
> .* followed by 0 or more characters (apart from newline)
>
> :: followed by 2 literal colon characters
>
> .* followed by 0 or more characters (apart from newline)
>
> $ followed by the end of the line (a \n character)
>
>
> also…
>
> can you please tell me what the zero after the $ doing in this string?
>
> getValue( $0; 1) ;
>
>
>
> The $0 is a way of referencing one of the captures the regular
> expression made
> I'm not entirely sure this capturing syntax is right, normally I use
> brackets to capture, yet it seems to work in textmate.
>
> We need to do this otherwise we don't know what to output after getValue(
>
>
>
>
>
>
>> On Feb 7, 2016, at 7:29 AM, Carpii UK <carpii.uk at gmail.com
>> <mailto:carpii.uk at gmail.com> > wrote:
>>
>> Try using a regular expression like this..
>>
>> http://carpii.homeip.net/skitch/Find-20160207-132857.png
>>
>> The expression is ^.*::.*$
>
>
>
> _______________________________________________
> textmate mailing list
> textmate at lists.macromates.com <mailto:textmate at lists.macromates.com>
> http://lists.macromates.com/listinfo/textmate
>
>
>
>
> _______________________________________________
> textmate mailing list
> textmate at lists.macromates.com
> http://lists.macromates.com/listinfo/textmate
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macromates.com/textmate/attachments/20160207/0f319f3d/attachment.html>
More information about the textmate
mailing list