基本正则表达式含义?

时间:2013-06-25 01:54:37

标签: php regex preg-match

我有这个正则表达式:

'/^ANSWER\:(.+?)$/'

我知道这大致翻译为:

以“ANSWER:”和......

开头的字符串

我不确定

是什么
(.+?)$

翻译成?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:7)

(       # begin capturing group
  .+?     # match any character (.) one or more times (+) as few times as possible (?)
)       # end capturing group
$       # end of string anchor (or end of line anchor, if multiline option is enabled)

以下链接有一个很好的正则表达式语法摘要:
http://www.regular-expressions.info/reference.html

答案 1 :(得分:2)

正则表达式的带括号的部分对应于捕获组,或者可以在以后引用的正则表达式的一部分,以便您可以获得适合子正则表达式的任何文本在捕获组内。 .表示匹配单个字符,+表示至少有一个实例,因此.+可以被视为“至少一个字符”。但是,+本身是“贪婪的”,意味着它匹配尽可能多的字符,而当后跟?时,它被指示匹配“懒惰”或尽可能少的字符。因为正则表达式以$结尾,所以我认为?不会改变正则表达式匹配字符串的方式,因为任何匹配都会被强制匹配所有字符,直到行结束为止。