View Single Post
Old 03-15-2017, 02:13 PM   #1
lairdb
dog ear
lairdb began at the beginning.
 
Posts: 53
Karma: 12
Join Date: Jan 2012
Device: lots
Regex in search problems (NOT Search&Replace; the search bar)

I'm having real trouble getting regex search in the search bar to work, especially within the identifiers field. (I don't know if it's a Python thing, but multi-valued fields seem to be getting treated... oddly.)

Here's what I'm trying to accomplish, in case there's an easier way. What I want the search to yield are rows that have an odid identifier that is not an ak/prime or ak/unlimited identifier. Here are three (made up) identifiers records:

Code:
isbn:9781611099690, odid:B00AESRRQS@ak/prime&B00AESRRQS@ak/unlimited

isbn:9781439147993, amazon:143914799X, goodreads:6933152, google:ibWojDN848kC, odid:346656@sdcl.overdrive.com&346656@sfpl.overdrive.com

isbn:9781439147993,  odid:346656@sdcl.overdrive.com&346656@sfpl.overdrive.com&B00AESRRQS@ak/unlimited
In this example, I would get rows 2 and 3, because they have odid identifiers that are not ak/prime or ak/unlimited; I would not get record 1 because although it has odid identifiers, none of them are non-ak.

The regex odid:.*@(?!(ak\/u|ak\/p)) does what I expect in a tester, but I can't get it to work in Calibre.

ETA: I've tried
odid:.*@(?!(ak\/u|ak\/p))
~odid:.*@(?!(ak\/u|ak\/p))
"~odid:.*@(?!(ak\/u|ak\/p))"
identifiers:"~odid:.*@(?!(ak\/u|ak\/p))"
and none of them yield results.

Thanks.

Last edited by lairdb; 03-15-2017 at 02:25 PM.
lairdb is offline   Reply With Quote