正则表达式多行匹配与只匹配第一个关键字(非贪婪模式)

概要:

(?s) 一般称为单行模式,意思是:匹配包括   在内的所有字符。

(?m) 一般称为多行模式,意思是:更改 ^ 和 $ 的含义,以使它们分别与任何行的开头和结尾匹配,而不只是与整个字符串的开头和结尾匹配。

| |目录

用例代码

public class TestRegular {
	public static void main(String[] args) {
		
	}
}

多行匹配

正则

(.*)main(?s)(.*?})

匹配结果

	public static void main(String[] args) {
		
	}

说明

(?s) 一般称为单行模式,意思是:匹配包括   在内的所有字符。

贪婪模式

正则

(.*)main(?s)(.*)}

匹配结果

	public static void main(String[] args) {
		
	}
}

说明

正则表达式默认使用贪婪模式,会尽可能多的匹配所搜索的字符串。

非贪婪模式

正则

(.*)main(?s)(.*?})

匹配结果

	public static void main(String[] args) {
		
	}

说明

当"?"字符紧跟在任何一个其他限制符 (*, +, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串

评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
资料加载中...
已关注 , 取消