2012-06-27 29 views
1

我試圖從不同的字符串中拉出某個部分,並且很難得到正確的正則表達式。下面是什麼,我想拉從幾個例子:PHP正則表達式在後期和空間之前拉文本

  1. AG055.MA - MAGNUM(想回到剛纔MA)
  2. WI460.16 - 這是(想回到16)
  3. AG055 .QB(想要返回QB)

所以基本上,我只是想拉字符後的時間,但之前的空間。之前或之後沒有別的。有人能幫助我獲得正確的正則表達式嗎?

回答

1

這應該工作:

<?php 
preg_match('/\.([^ ]+)/', $text, $matches); 

print_r($matches); 
?> 

輸出:

Array 
(
    [0] => .MA 
    [1] => MA 
) 

Array 
(
    [0] => .16 
    [1] => 16 
) 

Array 
(
    [0] => .QB 
    [1] => QB 
) 

正則表達式找到一個。字符,然後在它之後獲取不是空格字符的任何字符。 +使得它只返回點後面有非空格字符的匹配項。

2
preg_match('/\w+\.(\w{2})\s/', $input, $matches); 
echo $matches[1]; 
  • \w+指1點或多個字的字符(A-Z,A-Z和0-9)。
  • \.指週期/點(反斜槓是逃跑,因爲\.用作正則表達式的操作者)
  • (\w{2})比賽2個字字符
  • \s指空白
0
preg_match('/^[A-Z0-9]{5}\.([A-Z0-9]{2})/', $string, $matches); 
var_dump($matches); 

應返回$matches[1]中的字符。

相關問題