2017-01-04 10 views
0

内の電話番号を抽出する必要があります。は、私はすべての時間を変更することができ、次のような文字列を持っている文字列

style = " margin:0; " > \ r \ n
電話番号\ r \ n </p > \ r \ n < p style = " font-weight:bold;マージン: 0; Rを\ n 0411313062 \ R \ nを</P > \ R \ nは
</TD > \ R \ nは
</TR > \ R \ nは
<TR> \ R \ nは
\ " > < td style = "パディングボトム:18px; Rの\ nは

\ " >私は、この文字列のうち、電話番号0411313062を抽出する必要があります。

+1

'で試してみてください、あなたはいくつかの既知の構造が必要になります。しかし、代わりにXML/HTMLパーサを使うべきだと思います。 –

+0

'strip_tags'は' \ r \ n'と空白を無視し、行末まで数字を引っ張りますか?例えば – chris85

+0

。 'preg_match( '/^Phone [\\\ r \\\ n \ h] +?(\ d +)/ m'、strip_tags($ string)、$ match);'?正規表現ができないたびにフォーマットが変更される場合は、毎回番号の変更を意味すると思います。 – chris85

答えて

0

あなたはこれを試すことができます。

$text = 'style="margin: 0;">\r\n 
Phone\r\n </p>\r\n <p style="font-weight: bold; margin: 0;">\r\n 0411313062\r\n </p>\r\n 
</td>\r\n 
</tr>\r\n 
<tr>\r\n 
<td style="padding-bottom: 18px;">\r\n'; 
preg_match("/[0-9]{10}/", $text, $matches);// in case of multiple occurrences us preg_match_all 
print_r($matches[0]);//0411313062 
1

この

preg_match('\(?([0-9]{3})\s*\)?\s*-?\s*([0-9]{3})\s*-?\s*([0-9]{4})', $string, $match); 

が行動でそれを参照してください試してみてください、

https://regex101.com/r/pLqDWw/3

これで7または10桁の電話番号と一致するかします-または(area code)なし、たとえば800-555-5555または8005555555または(800)555-5555または555-5555など

あなたはもっとして1つの番号と一致する必要がある場合、私はあなたがに対してそれを探しているテキスト(HTML)を改良するために、PHPQueryのようなものを使用してお勧めします。 preg_match_allのような簡単なものを試すこともできますが、PHPQueryのハングアップがあれば、感謝します。

0

このコードは正常に動作します。この

$tab = <<<EOD 
style="margin: 0;">\r\n Phone\r\n </p>\r\n <p style="font-weight: bold; margin: 0;">\r\n 0411313062\r\n </p>\r\n </td>\r\n 
</tr>\r\n 
<tr>\r\n 
<td style="padding-bottom: 18px;">\r\n) EOD; 


$input= explode("\r\n", $tab); 
print_r($input); 

電話番号が効果的に正規表現を使用するためには...すべてのtime`を変更することができます

echo $input[4]; 
関連する問題