- --- In ntb-clips@yahoogroups.com, "beshtin" <beshtin@...> wrote:
>

Your search string defines seven capturing groups whereas your replace uses six back references only.

> I have hundreds of lines of text such as the following:

>

> 5 (5) PARSONS, MARY AST 40045 19 525 320

> 7 (9) MORRIS, ALICE FRG 2400 25

>

> The following clip converts the first line and all other lines with the same number of blocks of characters to a row of six cells in an HTML table:

>

> ^!Jump Doc_Start

> ;long line follows

> ^!Replace "^(\d+) ([(]\d+[)]) (.*?) ([A-Z]{3}) (\d+) (\d+) (.*)">>"<tr><td>$1</td><td>$2</td><td>$3</td><td>$4</td><td align=right>$5</td><td align=right>$6</td></tr>" RAWS

> ;long line prior

> ^!Jump Doc_End

>

> But, it simply ignores shorter lines like the second line of text

> above...

Maybe you could just omit the seventh capturing group and write:

^!Replace "(?x)^(\d+)\x20 (\(\d+\))\x20 ([A-Z,\x20]+)\x20 ([A-Z]{3})\x20 (\d+)\x20 (\d+).+$" >> "<tr><td>$1</td><td>$2</td><td>$3</td><td>$4</td><td align=right>$5</td><td align=right>$6</td></tr>" WARS

I've used \x20 to make spaces more visible; also used Extended Mode to separate the subpatterns a bit.

For me, the result is:

<tr><td>5</td><td>(5)</td><td>PARSONS, MARY</td><td>AST</td><td align=right>40045</td><td align=right>19</td></tr>

<tr><td>7</td><td>(9)</td><td>MORRIS, ALICE</td><td>FRG</td><td align=right>2400</td><td align=right>2</td></tr>

Regards,

Flo - Thank you, Don. So simple, and it works perfectly!

--- In ntb-clips@yahoogroups.com, Don <don@...> wrote:

>

> On 11/19/2012 4:08 PM, beshtin wrote:

> > 5 (5) PARSONS, MARY AST 40045 19 525 320

> > 7 (9) MORRIS, ALICE FRG 2400 25

>

> ^(\d+) ([(]\d+[)]) (.*?) ([A-Z]{3}) (\d+) (\d+) ?(.*)

>

> Make the space optional by adding the ? character after it.

> - Thank you for the extra tips, Flo!

--- In ntb-clips@yahoogroups.com, "flo.gehrke" <flo.gehrke@...> wrote:

>

> --- In ntb-clips@yahoogroups.com, "beshtin" <beshtin@> wrote:

> >

> > I have hundreds of lines of text such as the following:

> >

> > 5 (5) PARSONS, MARY AST 40045 19 525 320

> > 7 (9) MORRIS, ALICE FRG 2400 25

> >

> > The following clip converts the first line and all other lines with the same number of blocks of characters to a row of six cells in an HTML table:

> >

> > ^!Jump Doc_Start

> > ;long line follows

> > ^!Replace "^(\d+) ([(]\d+[)]) (.*?) ([A-Z]{3}) (\d+) (\d+) (.*)">>"<tr><td>$1</td><td>$2</td><td>$3</td><td>$4</td><td align=right>$5</td><td align=right>$6</td></tr>" RAWS

> > ;long line prior

> > ^!Jump Doc_End

> >

> > But, it simply ignores shorter lines like the second line of text

> > above...

>

> Your search string defines seven capturing groups whereas your replace uses six back references only.

>

> Maybe you could just omit the seventh capturing group and write:

>

> ^!Replace "(?x)^(\d+)\x20 (\(\d+\))\x20 ([A-Z,\x20]+)\x20 ([A-Z]{3})\x20 (\d+)\x20 (\d+).+$" >> "<tr><td>$1</td><td>$2</td><td>$3</td><td>$4</td><td align=right>$5</td><td align=right>$6</td></tr>" WARS

>

> I've used \x20 to make spaces more visible; also used Extended Mode to separate the subpatterns a bit.

>

> For me, the result is:

>

> <tr><td>5</td><td>(5)</td><td>PARSONS, MARY</td><td>AST</td><td align=right>40045</td><td align=right>19</td></tr>

> <tr><td>7</td><td>(9)</td><td>MORRIS, ALICE</td><td>FRG</td><td align=right>2400</td><td align=right>2</td></tr>

>

> Regards,

> Flo

> - Thank you, Axel.

--- In ntb-clips@yahoogroups.com, Axel Berger <Axel-Berger@...> wrote:

>

> beshtin wrote:

>

> > ^!Replace "^(\d+) ([(]\d+[)]) (.*?) ([A-Z]{3}) (\d+) (\d+) (.*)">>

>

> > I'm stumped. Any suggestions?

>

> It's the space in front of the last pair of parentheses.

>

> Axel

> >> I've used \x20 to make spaces more visible; also used Extended Mode to separate the subpatterns a bit.

How did you learn all of this stuff ... geez! Extended mode is a new

one to me. All proud to understand \K and now more ...

Triggered with the (?x):

In free-spacing mode, whitespace between regular expression tokens is

ignored. Whitespace includes spaces, tabs and line breaks. Note that

only whitespace between tokens is ignored. E.g. a b c is the same as abc

in free-spacing mode, but \ d and \d are not the same. The former

matches d, while the latter matches a digit. \d is a single regex token

composed of a backslash and a "d". Breaking up the token with a space

gives you an escaped space (which matches a space), and a literal "d".

From RegEx Buddy help.