Regular Expressions (Regexp)

Theory: Position within a string

In this lesson, we will learn about special characters that can clarify the character's positions in strings and substrings.

Let us look at the following example:


/java/

java


Here, the word java matches the string java. It is a simple condition.

It is important to remember that regular expressions do not look for matches in strings but in substrings. If you search in a string containing characters besides the ones you look for, the check may show that the strings match, even though you did not want it:


/java/

asdfjava asdf


There are special characters to control character search in a string.

A character that represents the beginning of a line

If you put ^ in the search line before the characters you look for, only the characters at the beginning of strings will match:


/^java/

java ruby clojurescript javascript


If we remove ^, we will have two matches, including one in the last substring:


/java/

java ruby clojurescript javascript


A character representing the end of a string

This character is $. Here is an example without this character. It has two matches:


/script/

java ruby clojurescript javascript


If we use $, we will have only one match at the end of the string:


/script$/

java ruby clojurescript javascript


Searching for characters relative to their word boundaries

Suppose we only need to find instances of a at the end of a word. To do this, we type a\b in the string pattern:


/a\b/

java ruby clojurescript javascript


If we type \B, instead, we can invert the search and find all instances of a not at the end of a word:


/a\B/

java ruby clojurescript javascript


If you put \b in front of the character we search for, we will find the characters at the beginning of the word:


/\bj/

java ruby clojurescript javascript


Here we use inverting again:


/\Bj/

java ruby clojurescriptj javascript


For clarity, if we compare it with the previous example, we added another j after the clojurescript in our string.

Now we find only instances of j that are neither at the beginning nor the end of a word:


/\Bj\B/

java ruby clojurescriptj javascript


Recommended programs