返回包含字母k的特定长度的子字符串

时间:2013-03-19 07:49:34

标签: php regex

我必须遍历文本文件并返回文本中找到的子字符串,这些子字符串长度为8或9个字符,并包含字母“k”。必须找到的子串的一些例子:1998k1748,1999k426,2003k3429,2012k325等。这种搜索的正则表达式是什么?我正在使用PHP。

任何帮助都将不胜感激。

这是我使用Chirag的表达后所拥有的:

error_reporting(E_ALL);

shell_exec('D:\wamp\bin\xpdf\bin32\pdftotext.exe d.pdf x.txt'); 

$mypdf = file_get_contents("x.txt");

preg_match('\d{4}k\d{3,4}', $mypdf, $result);

echo $result[0];

但是我收到以下错误:警告:preg_match()[function.preg-match]:第8行的D:\ wamp \ www \ pdf2text.php中的分隔符不能是字母数字或反斜杠

2 个答案:

答案 0 :(得分:1)

如果字符串始终采用(4位数字)k(3位或4位数字)的形式,如RedBaron所述,此正则表达式将起作用:

\d{4}k\d{3,4}

答案 1 :(得分:0)

if else

怎么样?
if ((strlen($string) ==8 || strlen($string) ==9 ) && strpos($string, 'k') ) {
//do somethig
}