1 00:00:00,000 --> 00:00:00,000 Hello, team. 2 00:00:00,000 --> 00:00:04,000 In this lesson, I'd like to talk with you about regular expressions. 3 00:00:05,000 --> 00:00:06,000 What is regular expression? 4 00:00:06,000 --> 00:00:11,000 Regular expression is a sequence of characters that define a search pattern. 5 00:00:11,000 --> 00:00:16,000 So you can use special set of characters to find all strings that match your pattern. 6 00:00:17,000 --> 00:00:20,000 Sometimes you use regular expression to split string. 7 00:00:20,000 --> 00:00:22,000 Let's imagine next case. 8 00:00:22,000 --> 00:00:26,000 You have a lot of text and you need to find only Google email accounts. 9 00:00:27,000 --> 00:00:28,000 How you would do this? 10 00:00:28,000 --> 00:00:32,000 You will try to describe search pattern with the help of special symbols. 11 00:00:33,000 --> 00:00:35,000 What are the special symbols? 12 00:00:35,000 --> 00:00:36,000 Here are some of them. 13 00:00:36,000 --> 00:00:40,000 Square brackets to identify characters which we need to search. 14 00:00:41,000 --> 00:00:45,000 I specified range from A to z lowercase and from A to z capital. 15 00:00:46,000 --> 00:00:51,000 Also specified dash character backslash d will match with all digits. 16 00:00:51,000 --> 00:00:55,000 And you already learned that we need to escape backslash character. 17 00:00:55,000 --> 00:00:58,000 That's why it's double backslash here. 18 00:00:59,000 --> 00:01:01,000 Also there are quantifiers. 19 00:01:01,000 --> 00:01:03,000 Plus sign might be read like this. 20 00:01:03,000 --> 00:01:07,000 In case these characters will be repeated at least one time and more. 21 00:01:08,000 --> 00:01:10,000 That is what we need after all of this. 22 00:01:10,000 --> 00:01:14,000 We expect at sign gmail dot. 23 00:01:14,000 --> 00:01:21,000 Taking into account dot in regular expression means any character we need to escape dot to say that 24 00:01:21,000 --> 00:01:26,000 we don't expect any character, but we are looking for exactly dot. 25 00:01:26,000 --> 00:01:30,000 That's why double backslash here and comb. 26 00:01:30,000 --> 00:01:33,000 Your homework task will be to learn other special symbols. 27 00:01:34,000 --> 00:01:36,000 I will share with you details at the end of the lesson. 28 00:01:37,000 --> 00:01:43,000 Definitely, there are a lot of ways to improve the regular expressions for email, and you can find 29 00:01:43,000 --> 00:01:48,000 in internet billions of variations of pattern for email address verification. 30 00:01:48,000 --> 00:01:55,000 Our goal right now to learn how to use regular expressions regarding special symbols to use in regular 31 00:01:55,000 --> 00:01:55,000 expression. 32 00:01:56,000 --> 00:01:59,000 I will share more details at the end of this lesson. 33 00:01:59,000 --> 00:02:02,000 After that you need to compile pattern. 34 00:02:02,000 --> 00:02:06,000 Do not forget to import Java.util regex package. 35 00:02:09,000 --> 00:02:12,000 We have the sample text with gmail address in it. 36 00:02:12,000 --> 00:02:19,000 Now you can get matcher much object out of pattern call matching method on pattern object and pass sample 37 00:02:19,000 --> 00:02:20,000 text into it. 38 00:02:21,000 --> 00:02:25,000 Match object can find matches call find method. 39 00:02:25,000 --> 00:02:32,000 Find method returns true in case a subsequence of the input sequence matches this matches pattern and 40 00:02:32,000 --> 00:02:33,000 false otherwise. 41 00:02:33,000 --> 00:02:38,000 In case there is a match, you will be able to call group method to return the string which matches 42 00:02:38,000 --> 00:02:39,000 your pattern. 43 00:02:40,000 --> 00:02:42,000 And let's print this to console. 44 00:02:43,000 --> 00:02:45,000 What can be improved here? 45 00:02:46,000 --> 00:02:50,000 As you learn loops, topic and control statements topic, you will be able to manage search process 46 00:02:50,000 --> 00:02:52,000 in a bit different way. 47 00:02:52,000 --> 00:02:58,000 For example, probably better solution would be here to call find method in if statement or in while 48 00:02:58,000 --> 00:03:00,000 loop to print multiple matches. 49 00:03:01,000 --> 00:03:04,000 But don't worry so far we will learn all topics gradually. 50 00:03:04,000 --> 00:03:07,000 You will have enough tasks to practice your skills. 51 00:03:07,000 --> 00:03:10,000 For now, I don't want to confuse you even more. 52 00:03:10,000 --> 00:03:15,000 Solution like this should be fine in case you want to find match in the string. 53 00:03:16,000 --> 00:03:17,000 Another example. 54 00:03:17,000 --> 00:03:21,000 We have sample text and we want to split it by sentences. 55 00:03:21,000 --> 00:03:23,000 Let's come up with a regular expression. 56 00:03:23,000 --> 00:03:26,000 We need to split by any of these characters. 57 00:03:26,000 --> 00:03:27,000 Period. 58 00:03:27,000 --> 00:03:29,000 Exclamation mark. 59 00:03:29,000 --> 00:03:30,000 Question mark. 60 00:03:31,000 --> 00:03:33,000 Now let's split this sample text. 61 00:03:33,000 --> 00:03:36,000 Using this regex we'll call split method. 62 00:03:36,000 --> 00:03:40,000 We'll get string array and let's print it to console. 63 00:03:41,000 --> 00:03:44,000 Here you can see that you have three different sentences. 64 00:03:45,000 --> 00:03:47,000 Let's recap what you have learned about strings. 65 00:03:48,000 --> 00:03:52,000 Now you know main string methods how to compare strings. 66 00:03:52,000 --> 00:03:54,000 You learn what is pool of strings. 67 00:03:54,000 --> 00:04:00,000 How to use escape sequences in your source code, how you can format strings, and how to use regular 68 00:04:00,000 --> 00:04:01,000 expressions. 69 00:04:01,000 --> 00:04:03,000 Now let's take a look at your homework. 70 00:04:05,000 --> 00:04:09,000 First of all, take a look one more time to string source code. 71 00:04:09,000 --> 00:04:12,000 Take a look at other methods which are in string class. 72 00:04:13,000 --> 00:04:15,000 As usual, I recommend you to read books. 73 00:04:15,000 --> 00:04:17,000 Chapter about strings. 74 00:04:17,000 --> 00:04:20,000 Learn format specifiers and flags. 75 00:04:20,000 --> 00:04:23,000 Here is the link to official Oracle documentation. 76 00:04:24,000 --> 00:04:29,000 I also did screenshots and left them here so you could faster find the things you need to learn. 77 00:04:30,000 --> 00:04:33,000 Do not forget to look through the examples of string formatting. 78 00:04:34,000 --> 00:04:36,000 Link to the source code is here. 79 00:04:36,000 --> 00:04:39,000 Implement console program according to requirements. 80 00:04:40,000 --> 00:04:43,000 This task to check your knowledge about string formatting. 81 00:04:44,000 --> 00:04:47,000 To learn regular expressions, I recommend you to use this resource. 82 00:04:47,000 --> 00:04:49,000 Let's take a look. 83 00:04:50,000 --> 00:04:51,000 You have 15 lessons. 84 00:04:51,000 --> 00:04:55,000 In each lesson you have description and exercise. 85 00:04:55,000 --> 00:04:58,000 You can always find hints on the right here. 86 00:04:58,000 --> 00:05:01,000 And in case you can't solve task. 87 00:05:01,000 --> 00:05:03,000 Take a look at solution here. 88 00:05:07,000 --> 00:05:13,000 Looking through the solutions will be also very efficient and will help you to learn regular expressions. 89 00:05:13,000 --> 00:05:19,000 I wouldn't say that you need to spend hours on learning regular expressions because you will not use 90 00:05:19,000 --> 00:05:20,000 them literally every day. 91 00:05:20,000 --> 00:05:23,000 But still, I would recommend you to learn the basics. 92 00:05:24,000 --> 00:05:30,000 And after that you have one more coding exercise to practice your skills in regular expressions. 93 00:05:30,000 --> 00:05:32,000 That's all for today. 94 00:05:32,000 --> 00:05:33,000 See you in the next lesson. 95 00:05:34,000 --> 00:05:34,000 Your.