std.algorithm.startsWith with maximal matching
H. S. Teoh
hsteoh at quickfur.ath.cx
Sun Jan 15 11:23:04 PST 2012
On Sat, Jan 14, 2012 at 07:53:10PM -0800, Jonathan M Davis wrote:
[...]
> Actually, if the word has to match exactly, then startsWith isn't
> going to cut it. What you need to do is outright strip the punctuation
> from both ends. You'd need something more like
>
> word = find!(not!(std.uni.isPunctuation))(word);
> word = array(until!(std.uni.isPunctuation)(word));
>
> if(canFind(wordList, word))
> {
> //...
> }
[...]
Thanks for the info, but this method has the flaw that the original
punctuation is lost, unless I work with a copy of the word. I was hoping
for a nice way to do matching in-place.
But perhaps what I need is a full-fledged lexer after all. Unless
there's a nice way of saying "match up to some predicate that determines
the end of the word" in the current infrastructure.
T
--
Claiming that your operating system is the best in the world because more people use it is like saying McDonalds makes the best food in the world. -- Carl B. Constantine
More information about the Digitalmars-d-learn
mailing list