Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
Solved

# remove number in text

Posted on 2003-11-06
Medium Priority
203 Views
\$fields[12] =~ s/\s+0\d+//g;

This works to remove th number begins with 0 in context.
However it does not work in the cases belows
TEL:040/72105730 : if some signs before 0, it dows not work
0998-20344 in this case
(040-2093494) In this case also?
Could you please make it work?
0
Question by:tilmes
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 8
• 3
• 2
• +1

LVL 3

Expert Comment

ID: 9699534
\$fields[12] =~ s/\s+0[\d-\/]+//g;
0

LVL 3

Expert Comment

ID: 9699537
the above one wont work, sorry

\$fields[12] =~ s/\s+0[-\d\/]+//g;
0

Author Comment

ID: 9699619
Hello

it does not work. this Tel:0174 and Tel.0190 shows still in view
0

Author Comment

ID: 9699645
Can this work, if some signs before 0 wrote, for exmpale :0174
it shows still. Can remove all the numbers begins with 0
both either in case begins direct with 0 or some signs is already before 0?
0

LVL 20

Expert Comment

ID: 9699689
I'm a little leery of blindly removing leading zeroes, but if you define a leading zero as any one of a sequence of one or more zeroes that follow a nondigit and precede a digit, then maybe this regular expression substitution will do what you ask:

\$fields[12] =~ s/(^|\D)0+(\d)/\$1\$2/g;
0

Author Comment

ID: 9699720
This one removes only 0, the digit follows remained.
e.g. 04213444 becomes 4213444
0

Author Comment

ID: 9699749
Maybe it would be better if
the text begins with "Tel." or "Tel:" or "(0" remove following all digits.
and remove whole numbers begins with 0
0

Author Comment

ID: 9699813
I am sorry,
It is firm if this works
remove all digits begins with 0
remove all digits include ":0" or ".0"
0

LVL 20

Expert Comment

ID: 9699906
Perhaps you need to start at the beginning. What is it you are trying to do? Please take the time to explain it clearly, since we are currently just making stabs in the dark.
0

LVL 3

Expert Comment

ID: 9700005
another stab in the dark :-)  If you want to delete only the prefix e.g. TEL:040/72105730 has to become TEL:72105730 you can use the following:
\$fields[12]=~ s/(^|\D)0+\d*\D{0,1}(\d*)/\$1\$2/g;

the outputs:
TEL:040/72105730  => TEL:72105730
0998-20344 => 20344
(040-2093494) => (2093494)
099820344 =>                 (empty)

So according to jmcg's question: what is correct of these substitions and what isn't correct?
0

Author Comment

ID: 9700041
can it be this way?
the outputs:
TEL:040/72105730  => TEL:(empty)
0998-20344 => (empty)
(040-2093494) => ((empty))
099820344 =>                 (empty)
0

LVL 3

Accepted Solution

BioI earned 400 total points
ID: 9700076
This one works for all the cases [maybe not the most elegant way? experts, correct me when i am wrong]
\$word =~ s/(^|\D)0+\d*\D{0,1}\d*/\$1/g;
0

Author Comment

ID: 9700105
Hi BioI,

It works very good,
thanks again.
0

LVL 3

Expert Comment

ID: 9700210
Hi Tilmes,

Nice that it works!
But do you sometimes consider to split points?  Because in this case, I just proceeded the work of the experts above [in fact on the solution proposed by jmcg].  Maybe it's worth considering this next time...
CU around!
0

Author Comment

ID: 9702641
Dear Bios

thanks for the advice. I know now how it works and it will be fair next time.
CU around!
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08â€¦