2014-01-23 48 views
0

我是新來正則表達式在PHP中。正則表達式替換整數後跟下劃線中的字符串php

我試圖取代值類似

在我的琴絃

101_1
102_2
103_3

字 「自定義值」

我已經嘗試了多種組合,但找不到解決方案。這是我認爲應該按照正則表達式的文檔工作代碼有助於提供網絡

$result = str_replace('[1-6]*_1', "custom values", $string); 

上記住這些值來在字符串之間,也沒有在開始既不字符串的結尾。

+1

是'xxx_x'數總是相同的長度/格式? –

+1

'[1-6]'表示'1'和'6'之間的數字。現在猜猜應該用什麼來代替末尾的'1' – HamZa

+1

哦,我知道了......你使用了錯誤的功能。你應該使用'preg_replace()' – HamZa

回答

1

你的表達不起作用,因爲它沒有捕獲[1-6]中的0。

假設你總是有一個或多個數字之間的下劃線,使用:

$result = preg_replace('/\d+_\d+/', "custom values", $string); 
1

嘗試一些像這樣的:

$result = preg_replace('/\d{3}_\d/', "custom values", $string); 

它抓住了前三個數字其次是下劃線,然後另一個數字。

1

使用preg_replace代替str_replace函數

preg_replace('/[0-6]{1,3}_[1-3]/', 'custom values', $string);