Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 90
  • Last Modified:

Regular expressions Exclude patter

I have a text .  I want to extract all phrases delimited by ? No problem

^?]+

But I need to exclude phrases with a certan word (f ex  monkey)

Example:

Central 543312,yrttt ?My firend? 23322 ?is a monkey?  ?I am happpy?

Extract my friend and I am happy

Do not extract is a monkey

Any ideas?
0
robrodp
Asked:
robrodp
  • 2
1 Solution
 
Kim RyanIT ConsultantCommented:
Very hard to do this with a single regexp. As you have to keep looping around a string to find all the delimited sequences, I suggest a 2 stage approach
1. Get the delimited strings
2. Exclude matches with the excluded phrase

Here is a Perl example
my $a = 'Central 543312,yrttt ?My firend? 23322 ?is a monkey?  ?I am happpy?';
while ($a =~ /\?(.*?)\?/g) {
    push(@phrases,$1);
}
my @exclusions = ('monkey');
foreach $phrase (@phrases) {
    foreach $exclusion (@exclusions) {
        unless ($phrase =~ /$exclusion/) {
            print "$phrase\n";
        }    
    }
}

Open in new window

0
 
robrodpAuthor Commented:
Thx
0
 
robrodpAuthor Commented:
I had thought about that

However I was hoping there was a better solution

Thx
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now