Tuesday, July 30, 2013

Re: Regexp help

On 30.07.13 07:41, Ben Fritz wrote:
> The OP specifically said that valid decimals are "in the form 1.0D0,
> or more precisely \d\+\.\d\+D\d\+" so I didn't try stuff like "123."
> or ".123".

Wot ... just trust the problem specification? OK, the OP might be a
mathematician or engineer, since fortran is mentioned, so you're
probably right. But in years gone by, I sometimes wrote regexes for
others in a technical department, and the original problem spec almost
always had to be tightened, to exclude stuff which hadn't been thought of.

> But possibly as in the other thread we need to account for negative numbers?

If we change the test text to:

123 123.0 123. -456 0.123 .123 789

then what we had:

> > /\v\.@<!<\d+>\.@!

also finds -456, but the cursor is on the 4, not the minus sign.
If signed integers are also needed, we'd probably have to ditch the
precondition, since /\v(-?|\.@<!)<\d+>\.@! introduces an ambiguity which
defeats that alternative. (It's rotten regex construction.)

This, though, finds "-456", rather than "456":

\v(^|[ \t+-])<\d+>\.@!

but again finds "123" " 789", as before. Maybe that's OK?

Erik

--
Remembering is for those who have forgotten.
- Chinese proverb

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments: