Opened 11 years ago

Last modified 11 years ago

#10323 closed defect

Eval functions: regexp_test() and regexp_match() matching part of the string — at Version 2

Reported by: plepe Owned by: team
Priority: normal Milestone:
Component: Core mappaint Version:
Keywords: Cc:

Description (last modified by plepe)

I noticed that the eval functions regexp_test() and regexp_match() needs a pattern which matches the whole input, and in case you just want to match a part of the input you have to add ".*" in the beginning and the end. This is not as I expected it (and I guess most other people would expect it). In fact it took me some time testing patterns and a final email to one of the developers to solve it.

Anyway. I think this doesn't even really make sense, especially for the regexp_match() function, which returns the matched substring as 0th element of the array (which will always be the whole string).

Also, it contradicts the regexp condition selector: node[shop=~/market/] matches "supermarket" as well as "marketplace".

I would suggest to change regexp_test() and regexp_match() to match substring of the input string. You can always add ^ and $ to match the whole string. If this is not possible, maybe it would be possible to add a flag and improve documentation?

Change History (2)

comment:1 by plepe, 11 years ago

Description: modified (diff)

comment:2 by plepe, 11 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.