And a script to create the regex from a word list. My apologies if this stuff turns out useless - but you can get absorbed in this mince...

on mouseUp
 -- string to search * SHOULD MATCH
put "The purple dinosaur inadvertently stepped on the cat." & return & "The white dog howled." into tString

 -- DUFF string to search ** SHOULD NOT MATCH
put "The purple dinosaur inadvertently stepped on the cat." & return & "The white dinosaur howled." into tString2

 -- words to find
 put "cat,dinosaur,dog" into tWords

 -- build the pattern to match the words
 put "(" into tWordsPattern
 repeat for each item tWord in tWords
   put tWord & "|" after tWordsPattern
 end repeat
 put ")" into char -1 of tWordsPattern

 -- build the whole damn regex
 put num of items in tWords into tTotalWords
 put 0 into tCurrentWord
 put "(?is)" into tRegex
 repeat for each item tWord in tWords
   add 1 to tCurrentWord
   put "\b" after tRegex
   if tCurrentWord > 1 then
     put "(?!" after tRegex
     repeat with i = 1 to tCurrentWord - 1
       put "\" & i & "|" after tRegex
     end repeat
     delete char -1 of tRegex
     put ")" after tRegex
   end if
   put tWordsPattern & "\b" after tRegex
   if tCurrentWord < tTotalWords then
     put ".*" after tRegex
   end if
 end repeat

 -- test our regex against the 2 test strings
 put matchText(tString, tRegex) & return & matchText(tString2, tRegex)

end mouseUp


John Craig wrote:
I still think it's working ok - someone slap me if I'm wrong.
The (?!  is looking ahead and saying 'you can't begin with.

(?!\1) - you can't begin with the first match
(?!\1|\2) - you can't begin with the 1st or second match

JC

J. Landman Gay wrote:
Sorry if this comes through twice, I'm having trouble sending to the list.

I need a matchtext/regex that will tell me if all supplied words exist in a block of text, regardless of their order, and ignoring carriage returns.

For example, see if all these words:  dog dinosaur cat

exist in this text:

"The purple dinosaur inadvertently stepped on the cat.<cr>
The white dog howled."

Should return true. Is there such a thing?


_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to