Search for multiple strings using Text Filter ReGex

As @tfmorris says, using the text filter with a regular expression like:

string 1|string 2|string 3

will do the job.

An alternative is to create a custom text facet as follows:

  1. Choose the menu option Facet -> Custom text facet from the drop down on the column you want to filter
  2. Write GREL expression something like:
value.find(/string 1|string 2|string 3/i).length()>0

This is a pretty similar approach to using the text filter to be honest - it's a little more fiddly because the formulation is a little more complex (some stuff that's automatically done for you in the text filter like the i after the second / which makes the match case-insensitive) but the nice thing is that once you've applied this once the expression will be stored in your GREL expression History and so it's very easy to re-use in a later session.

The other nice thing about using a custom text facet is you can use more complex GREL approaches (and combine them with OR or AND if necessary) where you need to. I use custom text facets a lot in my work and feel its worth mastering them as an approach to data filtering and exploration.

All that said - being able to filter for a list of values is a use case I've heard several times and it feels like we should try to support more directly than building a regular expression (or other method) to find cells that contain a value from the list. So I've created a new feature request for that Easily filter rows based on a list of values · Issue #6189 · OpenRefine/OpenRefine · GitHub - feel free to contribute thoughts on there if you have ideas on how this could work