Pasting your sample data into the following 1-liner (wrapped for posting only) produced the following output. (Season to taste:)
perl -0777pe " s[[^0-9() -]+][\n]g; s[\s{3,}][\n]g; s[---][]g; for my$n(1..4){ s[\n.{1,7}\n][\n]msg;} print" - [PASTE SNIPPED] ^Z (440) 248-2700 (440) 975-0537 (330) 836-9300 (330) 864-5741 (313)884-6400 (313) 884-0600 (313) 590-9253 (440) 248-2700 (440) 975-0537 (330) 836-9300 (330) 864-5741 (313)884-6400 (313) 884-0600 (313) 590-9253
If your data file is very large you would need to drop the slurp (-0777) which would mean that as-is, the filtering wouldn't be as effective. But the principle of first throwing away as much as possible (safetly--replacing with spaces or newlines so that you don't run good data together) is a useful first pass at extracting small pieces from large volumes.
In reply to Re: phone number parsing refuses to work
by BrowserUk
in thread phone number parsing refuses to work
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |