[ale] Yet another regex question

Stephen Cristol stephen at bee.net
Sat Aug 13 14:25:21 EDT 2005


On Aug 12, 2005, at 9:29 PM, Christopher Fowler wrote:
> I guess what I'm asking is if there is a way to catch 'XMI001' instead
> of '%\sXMI001' without using the anchors

Probably not. The following perl regex will catch most of what you want:

   /[^%]\S$signal/

where $signal is "XMI001", the caret is a negation rather than an 
anchor, and the "\S" (uppercase "S") matches a character that is not 
whitespace. (NB: if $signal contains regex metacharacters, it will 
probably need to be enclosed in parentheses.)

This misses the signal when it occurs at offset 0 or 1 from the 
beginning of the string. A potentially easy fix for this (which may not 
be an option in your environment) is to prepend two spaces to the 
beginning of every string processed. That guarantees that there will be 
enough leading characters for the above regex to match the signal 
wherever it occurs in the string.

S

-- 
Stephen Cristol
cristol at emory.edu




More information about the Ale mailing list