Advanced Item Search: Matches

I’m trying to use the advanced search to find Subject terms containing newline characters. I see the “matches” option and have tried a few queries, hoping that it is for searching with a regex pattern. Is that the case? If so, I must have an issue with my syntax. Any advice?

Here are a few queries I’ve attempted…

/\n/
"\n"
\r
\r?\n
/[\r\n]+/
(\r\n|\r|\n)

“matches” is a regex using MySQL’s regex syntax, described in their docs.

You definitely don’t need the / / delimiters. Have you tried just \n?

I tried \n but it returns a large number of false positive matches.

Doing a direct database query (below), I get the expected results.

SELECT * FROM `omeka_element_texts` WHERE `element_id` = 49 AND `text` REGEXP '\n' 

Hmmmmm, I suppose the problem here is that we, necessarily, escape the input from the user. MySQL’s ability to search for a newline character like this relies on being able to write a direct escape in a way that’s incompatible with us escaping the user’s input.

If the input here were a textarea instead of an input type="text" then you could write a literal newline in there and that should work correctly… it’s a bit of a conundrum.

1 Like

This makes sense. I’ll just search and make changes in PHPMyAdmin as needed when dealing with this specific issue.

This topic was automatically closed 360 days after the last reply. New replies are no longer allowed.