Regex (matchChunk) help...

Jim Lambert jiml at netrin.com
Fri Jun 15 21:06:04 EDT 2018


Building on what Mark Wieder elegantly wrote:

> MarkW wrote:
> 
>  filter lotsOfText with "*selkirkst*skyrider1*”

function extractStrings lotsOfText, startWord, endWord

	replace cr with space in lotsOfText -- Makes sure lotsOfText is just a single line

	replace startWord with cr & startWord in lotsOfText -- Makes sure a line starts with the startWord

	replace endWord with endWord & cr in lotsOfText -- Makes sure a line ends with the endWord

	filter lotsOfText with "*" & startWord & "*" & endWord  — Mark’s suggestion

	return lotsOfText

end extractStrings


Try it with your original gibberish. I‘ve added a second instance of the string you want to extract to show that the function will return all instances.


Use the *selkirkst* function to check whether a *string* contains a

specified pattern. If *selkirkst* includes a pair of parentheses, the

position of the substring matching the part of theregular expression inside

the parentheses is placed in the variables in the *positionVarsList*. The

number of the first character in the matching substring is placed in the

first variable in the positionVarsList, and the number of the last

*selkirkst is

placed in the second **skyrider1*. Additional starting and ending

positions, matching additional parenthetical expressions, are placed in

additional pairs of variables in thepositionVarsList. If the

*selkirkst* function

returns false, the values of the variables in the positionVarsListare not

*selkirkst is

placed in the third **skyrider1*. changed. The string and regularExpression are always case-sensitive,

regardless of the setting of the caseSensitive property. (If you need to

make a case-insensitive comparison, use "(?i)" at the start of the

regularExpression to make the match case-insensitive.)


Jim Lambert




More information about the use-livecode mailing list