java-development-for-beginners-learnit / 06 - Strings in Java /005 Regular expressions in Java_en.srt
| 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. | |