正则表达式
常见量词:*
、+
、?
-
.
表示匹配除\n之外的任意的一个字符 -
*
表示匹配前一个字符的零次到多次 -
+
表示匹配前一个字符的一次到多次 -
?
表示匹配前一个字符的零次或一次 -
()
表示将括号中的字符串作为一个整体,例如:(xyz)+
将匹配 xyz 整体1次以上,如xyzxyz -
^
表示匹配字符串开始的位置,在[]里面的^
表示取反 -
[]
表示字符集合,例如[^"]*
表示除双引号之外的内容,[^"]
表示匹配除双引号之外的任意字符,"[^"]"
表示被双引号包裹的任意字符 -
[".+]
匹配的是双引号、点号或加号中的任意一个字符。
假设有一个字符串:"4":"something", "6":"anything",
,要你找出里面所有的键值对,应该如何书写正则表达式?初学者可能写出答案1的表达式,但是下面的答案2是对的
答案1:(".+":".+"),
答案2:(".+?":"[^"]+?")
贪婪匹配:匹配最长可能的字符串,非贪婪匹配: 匹配最短可能的字符串
要判断一个量词是否是贪婪匹配,需要观察量词的后面是否跟着一个问号。在正则表达式中,问号用于将量词转换为非贪婪匹配。