行尾的正则表达式

时间:2010-07-14 14:13:06

标签: php regex

我正在抓取一个文本块,在这个块中会有一行包含一个以“WITH PASSWORD kEqHqPUd”结尾的短语,其中kEqHqPUd是一个动态生成的密码。任何人都可以提供一个简单的正则表达式来获取其中的密码。 FWIW我正在使用PHP。

由于

3 个答案:

答案 0 :(得分:11)

preg_match('/WITH PASSWORD (.*)$/im', $block, $matches);
//result in $matches[1]

关键是"m" modifier

答案 1 :(得分:3)

不确定如何定义“结束的短语”......但如果您的意思是“一个句子以密码结尾,但可以跟着另一个句子” ,那么解决方案可能是:

$text = <<<TEXT
This is some
text and there is a sentence that ends
with WITH PASSWORD kEqHqPUd. Is that
matched ?
TEXT;

$matches = array();
if (preg_match('/WITH PASSWORD ([\w\d]+)/', $text, $matches)) {
    var_dump($matches[1]);
}

这只会在密码只包含字母和/或数字的情况下起作用 - 但如果在“短语的结尾”后面有某些内容,则会有效。


如果你的意思是密码是整个字符串中的最后一个东西,你可以使用这样的东西:

$text = <<<TEXT
This is some
text and there is a sentence that ends
with WITH PASSWORD kEqHqPUd
TEXT;

$matches = array();
if (preg_match('/WITH PASSWORD (.+)$/m', $text, $matches)) {
    var_dump($matches[1]);
}

请注意,$符号表示“字符串结尾”。

答案 2 :(得分:0)

假设PHP接受标准正则表达式模式,则以下内容应为“WITH PASSWORD(。+)+ $”,其中密码将放置在第一个捕获组中。