我有一个正则表达式,但它无法正常工作。正则表达式是:
m/^alias ([^\s]*) (.*) (<.*>)/
我在mutt文件上测试了我的表达式,将其转换为vcard。我的测试字符串是:
alias john smith <john.smith@test.com>
但在alias
和john
之间我有一个标签,([^\s]*)
找不到标签。为什么不?通常\s
匹配空格或制表符,不是吗?
答案 0 :(得分:2)
模式中alias
后面有一个文字空格,因此匹配字符串的前6个字符必须为“a
”,“l
”,“{{1 “}”,“i
”,“a
”和空格。但是你的字符串的第六个字符是一个标签。我想你想要以下内容:
s
或
my ($gname, $sname, $addr) = /^alias\s+(\S+)\s+(\S+)\s+<(.*)>/;
(my ($name, $addr) = /^alias\s+([^<\s]+(?:\s+[^<\s])*)\s+<(.*)>/
相当于\S
。)
答案 1 :(得分:0)
<?php
$RankSql = 'SELECT *
FROM games
WHERE Genre LIKE "%'.$Genre.'%"
ORDER BY Score DESC limit 5';
$Rankresult = mysql_query($RankSql);
$games = array();
while($RankOrder = mysql_fetch_array($Rankresult))
{
$games[] = $RankOrder;
};
// ex: third game (remember, arrays start at zero)
echo $games[2]['Game'];
?>
是否定的字符类。 [^...]
是空白字符的通配符(包括标签:\s
)。 [ \t\r\n\f]
将捕获每个非空格字符。
作为旁注,大写速记字符类会使其无效。因此,([^\s]*)
与[^\s]
相同。