On 8/26/15, aparsloe <[log in to unmask]> wrote: > On 25/08/2015 1:35 a.m., Joseph Wright wrote: >> On 25/08/2015 07:05, Joseph Wright wrote: >>> On 26/08/2015 00:44, aparsloe wrote: >>>> (1) I wanted to use \tl_replace_all:Nnn on a token list that might >>>> contain braced groups. Using \tl_set_rescan:Nnn to change the category >>>> codes of { and } seemed the most direct way of proceeding. (Then >>>> resetting the category codes after replacement with an empty setup.) >>> I see what you mean (I have a similar case in siunitx, for historical >>> reasons). We'll explore what we can do with this: there are >>> mapping-based approaches one can imagine that will enter brace groups. >>> (We do that for \tl_lower_case:n, for example). However, for a general >>> 'search and replace' I'd be slightly wary as the TeX convention that >>> stuff in brace groups is 'special' is quite prevalent. (Depending on >>> performance requirements, you might also look at l3regex if you are >>> doing the replacement only very rarely.) >> It would be useful here to see what your real use case is, as that's >> often illustrative. >> -- >> Joseph Wright > Thank you for the responses. I was remiss. I didn't make it clear that > looking inside braced groups was not the concern, rather to replace (or > remove) a list of tokens that might include braced groups. I've been > reworking the code of a package that turns latex expressions into > expressions that can be digested by l3fp. In fact, this particular issue > has now been reworked away, but the problem had been to remove a varying > expression, e.g. \sqrt{123} or \frac{1-x}{1+x}, from the initial > segment of a formula. Rescanning { and } to "other" allowed me to use > \tl_remove:Nn successfully. Although I can think of other means of doing > this, they seem cumbersome by comparison. > > Andrew \tl_set:No \l_result_tl { \use_none:nn \sqrt{123} + 123 } could be a better approach in many cases, no? Bruno