我正在抓取一个文本块,在这个块中会有一行包含一个以“WITH PASSWORD kEqHqPUd”结尾的短语,其中kEqHqPUd是一个动态生成的密码。任何人都可以提供一个简单的正则表达式来获取其中的密码。 FWIW我正在使用PHP。
由于
答案 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(。+)+ $”,其中密码将放置在第一个捕获组中。