Regex for string contains?

Assuming regular PCRE-style regex flavors:

If you want to check for it as a single, full word, it's \bTest\b, with appropriate flags for case insensitivity if desired and delimiters for your programming language. \b represents a "word boundary", that is, a point between characters where a word can be considered to start or end. For example, since spaces are used to separate words, there will be a word boundary on either side of a space.

If you want to check for it as part of the word, it's just Test, again with appropriate flags for case insensitivity. Note that usually, dedicated "substring" methods tend to be faster in this case, because it removes the overhead of parsing the regex.


Depending on your flavor of regular expression - the exact details of regex capabilities vary depending on the language.

I will give javascript examples.

If you don't care about null safety...

str = "blah"
str.match(/a/)
// [ 'a', index: 2, input: 'blah', groups: undefined ]

Case-sensitive

/test/.test("does this string contain the word testtesttest")
// true

Case-insensitive

/test/i.test("Test")

Case-insensitive, ANY word

/\b\w+\b/i.test("bLAH")
// true

Just don't anchor your pattern:

/Test/

The above regex will check for the literal string "Test" being found somewhere within it.

Tags:

Regex