Hi Yclept,
do I understand your proposed match correctly in that only the key node and a '=' sign are guaranteed to exist? Appart from that, try using variables and functions from the generic modules coming with Augeas. That does ease development for you and avoids misunderstandings on this list. E.g. does this maybe already match your pattern (you have not given a regular expression to match "key", "value" or "comment", so I just assume you want to match a simple word and comments are started with '#')? let match = [ Util.del_opt_ws . key Rx.word . Sep.space_equal . (store Rx.word)? . Util.comment_or_eol ] I haven't tested this, since you did not give a real word example either, so try it for yourself. Ciao, Xavier. From: [email protected] [mailto:[email protected]] On Behalf Of Yclept Nemo Sent: Friday, October 30, 2015 2:18 AM To: augeas-devel Subject: [augeas-devel] Matching key/value statement How to unambiguously match: # spaces? key spaces? = spaces? value? spaces? comment? where "key" is the node key, "value" the node value, and "comment" and child node? These are all accurate but create ambiguities in the put direction: = (spaces | ((spaces? . value)? . (spaces? . comment)?)) = spaces? . (value | comment | (value . spaces? . comment?))? = (spaces? | (spaces? . value) | (spaces? . comment) | (spaces? . value . spaces? . comment)) ... whether or not the union branches occur on the lens or node level. Sincerely,
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ augeas-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/augeas-devel
