Thanks Virgil
I am not sure if your suggestion works in the case of "Methionine = (S)-2-amino-4-(methylsulfanyl)-butanoic acid". I suspect it would end up as "methylsulfanyl" but I haven't tested it yet.
Paul
On 12/12/2022 13:48, Virgil Bierschwale wrote:
you can do this to get the positions, and then just get what is between the two positions.
store "Methionine = (S)-2-amino-4-(methylsulfanyl)-butanoic acid (2.13)" to string store '(' to left_str store ')' to right_str
*acid2 = "Methionine = (S)-2-amino-4-(methylsulfanyl)-butanoic acid"
clear
? rat(left_str, string) ? rat(right_str, string)
On Mon, Dec 12, 2022 at 7:10 AM Paul Newton paul.newton.hudl@gmail.com wrote:
Hi all
I've been very quiet for a while so I thought it was about time I chimed in again. I have come across the use of a regex expression in another language which works like this:
acid1 = "Methionine = (S)-2-amino-4-(methylsulfanyl)-butanoic acid (2.13)" acid2 = "Methionine = (S)-2-amino-4-(methylsulfanyl)-butanoic acid"
NumberAtEnd:= proc(S::string) description "Extract a parenthesized number, possibly containing periods, from the end of a string": local r; if StringTools:-RegMatch("\(([0-9.]*)\)$", S, r$2) then r else FAIL fi end proc:
NumberAtEnd(acid1) returns "2.13" NumberAtEnd(acid2) returns "FAIL"
How can this be done in VFP? Many thanks
Paul Newton
[excessive quoting removed by server]