如果给出以下字符串,我怎么能匹配它末尾的整个数字呢?
$string = "Conacu P PPL Europe/Bucharest 680979";
我必须告诉字符串的长度不是恒定的。
我选择的语言是PHP。
感谢。
答案 0 :(得分:39)
您可以使用preg_match
的正则表达式,如下所示:
$string = "Conacu P PPL Europe/Bucharest 680979";
$matches = array();
if (preg_match('#(\d+)$#', $string, $matches)) {
var_dump($matches[1]);
}
你会得到:
string '680979' (length=6)
以下是一些信息:
#
是分隔符 - 它们没有任何意义:它们只表示正则表达式的开头和结尾;你可以使用你想要的任何角色(人们经常使用/
)()
表示您想要捕捉它们之间的内容
preg_match
,作为第三个参数给出的数组将包含那些捕获的数据()
\d
表示“数字”+
表示一次或多次所以:
有关详细信息,请查看PCRE Patterns和Pattern Syntax
。
答案 1 :(得分:5)
以下正则表达式可以解决这个问题:
/(\d+)$/
答案 2 :(得分:1)
编辑:此答案会检查字符串中的最后一个字符是否为数字。由于问题https://stackoverflow.com/q/12258656/1331430已完全复制,我将在此处发布我的答案。对于OP要求的这个问题,请使用接受的答案。
这是我的非正则表达式解决方案,用于检查字符串中的最后一个字符是否为数字:
if (ctype_digit(substr($string, -1))) {
//last character in string is a digit.
}
传递start = substr
的 -1
将返回字符串的最后一个字符,然后根据ctype_digit
检查,如果字符是数字,则返回true
,或者false
否则。
<强>参考文献:强>