At 01:03 -0700 24/9/11, Rick Gordon wrote:

How can I set up a grep search that will repeat looping through the document until all instances have been processed?

For instance, say I've set up markers (« and ») around target source strings, and want to process thos strings to remove any characters that are not ASCII, numeric, space, or hyphen. Something like:

FIND:
        (?<=«)(.*?)[^- A-Za-z0-9«»]+?(.*?)(?=»)

CHANGE TO:
        \1\2

How can I keep it looping until no more instances are found?

The following Text Filter will, so far as I can tell, do the job. I have even tried putting Chinese characters withing the guillemets. It's probably far more longwinded than it needs to be but it works.



#!/usr/local/bin/perl
use strict;
use encoding 'utf-8';
my $inside;
while (<>) {
  my @chars = split //;
  for (@chars) {
    my $ord = ord;
    $inside = 1 if $ord == 171;
    $inside = 0 if $ord == 187;
    if ($inside) {
      print if $ord == 171;
      print if /[a-z]|[0-9]| |-/i;
    } else {
      print;
    }
  }
}
__END__

JD

--
You received this message because you are subscribed to the "BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
<http://groups.google.com/group/bbedit?hl=en>
If you have a feature request or would like to report a problem, please email "[email protected]" rather than posting to the group.
Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>

Reply via email to