正则表达式多行匹配与最小匹配(非贪婪模式)
## 说明
(?s) 一般称为单行模式,意思是:匹配包括\\n在内的所有字符。
(?m) 一般称为多行模式,意思是:更改 ^ 和 $ 的含义,以使它们分别与任何行的开头和结尾匹配,而不只是与整个字符串的开头和结尾匹配。
## 实例
### 用例代码
```java
public class TestRegular {
public static void main(String[] args) {
}
}
```
### 多行匹配
#### 正则
```
(.*)main(?s)(.*\})
```
#### 匹配结果
```
public static void main(String[] args) {
}
}
```
### 非贪婪模式
正则表达式默认使用贪婪模式,会尽可能多的匹配所搜索的字符串。
当"?"字符紧跟在任何一个其他限制符 (*, +, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串
#### 正则
```
(.*)main(?s)(.*?\})
```
#### 匹配结果
```
public static void main(String[] args) {
}
```