鑑於這種形式的字符串:正則表達式捕捉到谷歌網頁字體的權重和樣式
var myfont = 'Exo 2:600italic';
我需要一個正則表達式的冒號(600)爲var1的任何值之後捕捉到字符串的數字部分以下數值爲var2。
例如,從上面的字符串,我會得到:
font-weight:600 //var1 value
font-style:italic //var2 value
任何幫助,非常感謝。
鑑於這種形式的字符串:正則表達式捕捉到谷歌網頁字體的權重和樣式
var myfont = 'Exo 2:600italic';
我需要一個正則表達式的冒號(600)爲var1的任何值之後捕捉到字符串的數字部分以下數值爲var2。
例如,從上面的字符串,我會得到:
font-weight:600 //var1 value
font-style:italic //var2 value
任何幫助,非常感謝。
以下的正則表達式應該制定出適合你:
:(?<var1>\d+)(?<var2>\w+)
此使用名爲組(即(?<var1>
和(?<var2>
),所以返回的比賽,如果有的話,將通過關聯數組訪問(含var1
和var2
作爲數組索引)。
使用PHP的preg_match()
:
$input = 'Exo 2:600italic';
$matches = array();
preg_match('/:(?<var1>\d+)(?<var2>\w+)/', $input, $matches);
輸出:
print_r($matches);
Array (
[0] => :600italic
[var1] => 600
[1] => 600
[var2] => italic
[2] => italic
)
如果要直接訪問你以後的值,你可以使用:
$var1 = $matches['var1'];
$var2 = $matches['var2'];
$myfont = 'Exo 2:600italic';
if (preg_match('~:(\d+)(\w+)~', $myfont, $matches)) {
print_r($matches);
}
print_r($matches);
輸出:
Array
(
[0] => :600italic
[1] => 600
[2] => italic
)
存儲所提取的值轉換爲新的變量,你會怎麼做:
$var1 = $matches[1];
$var2 = $matches[2];
謝謝,但我不知道怎麼用你給我的myfont串什麼。我錯過了嗎?我只是使用var1和var2作爲佔位符來保存來自myfont字符串的重量和字體樣式值。 – RegEdit
@RegEdit我已經更新了我的答案,並附有示例用例 – newfurniturey
+1謝謝!我現在可以看到。 – RegEdit