Paul Johnson wrote:
> On Tue, Apr 15, 2008 at 08:38:30PM +0100, Rob Dixon wrote:
>> Paul Johnson wrote:
>>> On Wed, Apr 16, 2008 at 12:11:20AM +0530, [EMAIL PROTECTED] wrote:
>>>
>>>> I need help in regular expression. I have string as follows.
>>>>
>>>> OMS.FD.08.03.000.14
>>>>
>>>> I need only OMS.FD.08.03.000 this much part of the string.i want to
>>>> exclude .14
>>> That's not much of a spec. How far have you got?
>>>
>>> Perhaps one of these possibilities will help?
>>>
>>> $_ = "OMS.FD.08.03.000";
>> It was 'OMS.FD.08.03.000.14'
>
> The original was. I was providing an (admittedly unlikely) potential
> solution.
No, the object data in the original post was different from what you
coded. I don't think you meant to correct his data - that would be a
little too presumptuous :)
> Followed by some more, which might have been more likely.
>
>>> s/.14//;
>>> s/\.\d+$//;
>>> s/\..*$//;
>>> s/^((?:[^.*]\.){4}[^.]*).*/$1/;
>> All of those options will modify the object string, which is unlikely to
>> be what is wanted.
>
> Which was sort of my point. Who knows what was actually wanted?
>
>> Without knowing the full range of possible strings, I suggest the
>> program below may help.
>
> See, now you're playing too ;-)
Sure - the problem was understated, but all of your solutions modified
the object string when a simple regex with a capture could have provided
a solution with no side effects.
An analyst's job is to establish the problem as well as the solution,
not to invent possible problems.
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/