PHP regular expression (2) PHP regular expression has two important methods: preg_match () and preg_replace (). A simple example is provided. To match this parameter, use the following pattern: $ str123123, 123123,123123, 2017123,234234; $ model ^ ([0-9] *), ([0-9] *),) * ([0-9] *) $; $ match PHP regular (2)
PHP regular expression
There are two important methodsPreg_match ()AndPreg_replace ()For a simple example. The pattern used for matching is as follows:
$ Str = "123123,123123, 123123,2017123, 234234"; $ model = "/^ ([0-9] *), ([0-9] *) * ([0-9] *) $/"; $ match = array (); $ ret = preg_match ($ model, $ str, $ match ); $ match contains matched content.
Greedy matchAnd
Non-greedy matchSee the following example.
$ Eee = "(12)-123 23-(233)"; // greedy match example: this pattern can only match one. $ Preg = "/\(. * \)/"; $ match = array (); $ ans = preg_match_all ($ preg, $ eee, $ match); var_dump ($ match ); // The result is that only one pattern can be matched. Because the first one seems to be a complete parentheses, the entire result will be matched. // In non-greedy match mode, you can find all the content in the brackets, but not the question mark after. $ Preg = "/\(.*? \)/"; $ Match = array (); $ ans = preg_match_all ($ preg, $ eee, $ match); var_dump ($ match );
Regular expression replacement
Preg_replace ()You can replace the content in $ str. In the above example, we replace the number in the brackets of $ eee in China with the string haha. we can design the following method. Note:Preg_replace. $ Pattern and $ replace are both arrays. the matching modes are shown below.
Replace the matched content according to the regular expression rules. $ Eee = "(12)-123 23-(233)"; $ preg = array ("/\(.*? \)/"); $ Replace = array (" haha "); $ ans = preg_replace ($ preg, $ replace, $ eee); var_dump ($ ans );
The above is a relatively basic usage, and the following is a little more complicated.
$ Str = preg_replace ("/()(.*?) (<\/A>)/", '\ 1 \ 2 \ 3', $ str ); // three sub-modes are used (the content in each parentheses is a sub-mode), and the first is the link start tag, the second is the link text // The third is the regular expression replacement function, which adds tags to all links and adds styles to the link content. // By learning the above expression, we can convert the previous example into this. $ Eee = "whie2ch (12)-123 23-function (233)"; $ preg = "/(\ w *)\(.*? \)/"; $ Replace =" \ 1word \ 2bb "; // replace the variable with word, replace the content in the brackets with bb \ 1 \ 2, which indicates the matching content in the brackets. $ Ans = preg_replace ($ preg, $ replace, $ eee); var_dump ($ ans );
PHP modifier
$ Eee = "maid (1 \ n2)-123 n 23-function nhehe (23 \ n3) sfsdf (24 \ n5)"; $ preg = "/\(.*? \)/"; // $ Replace =" \ 1word \ 2bb "; $ match = array (); $ ans = preg_match_all ($ preg, $ eee, $ match ); var_dump ($ match); // in this way, the content in the brackets cannot be found. Because. does not include line breaks. // Use the above $ preg as follows. $ Preg = "/\(.*? \)/S "; re-run the program and find that all contents match.
PHPOfModifierAs follows:
Modifier |
Description |
S |
Enable. include line breaks to achieve cross-row matching. |
U |
Let? Matched to greedy status by default |
I |
Case insensitive |
U |
The mode string is treated as UTF8 |
M |
When this modifier is set, in addition to matching the beginning and end of the entire string, the row start (^) and the row end ($) also match the line break (\ n) respectively) after and before |
PHP modifierAs shown in the above program. Set/your_regrex/X
X indicates your modifier. select the modifier as needed.