[PD-dev] regular expression in pd
Mathieu Bouchard
matju at sympatico.ca
Wed Nov 12 02:17:51 CET 2003
On Tue, 11 Nov 2003, Jerome Etienne wrote:
> i need to do regular expression parsing in puredata under linux.
> i looked to externals available on the internet but failed to find one.
> did i miss it ? should i write it myself using the regexp of glibc ?
1. Install GridFlow
2. Put this code in ~/.gridflow_startup:
class FRegexp < FObject
def initialize(pattern)
_1_symbol pattern
end
def _1_symbol(pattern)
@pattern = Regexp.new pattern.to_s
end
def _0_symbol(s)
m = @pattern.match s.to_s
if m then
send_out 0, :list, *m.to_a.shift.map {|x| x.intern }
else
send_out 1
end
end
install "regexp", 2, 2
end
3. Try it: it takes one mandatory argument, the pattern, in ruby syntax
(akin to perl's), which can be configured by inlet 1 too. Then when you
send a symbol in inlet 0, a bang will be emitted on outlet 1 if the symbol
does not match, and else, a list of matched sections will be emitted on
outlet 0, depending on the parentheses.
4. Caveats: it should support GridFlow's strings in addition to symbols;
and also you can't specify any backslash codes because Pd is paranoid
about them (and about the lovely curlies too {}). I can take care of these
if anyone cares.
________________________________________________________________
Mathieu Bouchard http://artengine.ca/matju
More information about the Pd-dev
mailing list