更改案例時,我想拆分字符串。更改案例時拆分字符串
例如我有兩個字符串:ABCcd
和abCDE
。
我就導致ABC
和cd
第一和ab
和CDE
第二。沒有定義小寫和大寫的數字。
我已經試過preg_match
和preg_split
但我有一些問題來定義正確的正則表達式。
更改案例時,我想拆分字符串。更改案例時拆分字符串
例如我有兩個字符串:ABCcd
和abCDE
。
我就導致ABC
和cd
第一和ab
和CDE
第二。沒有定義小寫和大寫的數字。
我已經試過preg_match
和preg_split
但我有一些問題來定義正確的正則表達式。
試試這個簡單的一種。
<?php
ini_set('display_errors', 1);
$input = array("ABCcd","abCDE");
foreach ($input as $value)
{
preg_match_all("#[A-Z]+|[a-z]+#", $value, $matches);
print_r($matches[0]);
}
非常感謝!我選擇了你的解決方案,因爲我認爲它是最乾淨的!再次感謝。 – Azkidenz
@Azkidenz歡迎朋友.... :) –
也許匹配零寬度是一個選項。
正則表達式:(?<=[A-Z])(?=[a-z])|(?<=[a-z])(?=[A-Z])
PHP代碼:
<?php
$str = "aaaaBddDDDeeFFggJ";
$match = preg_split("/(?<=[A-Z])(?=[a-z])|(?<=[a-z])(?=[A-Z])/", $str);
foreach ($match as $value) {
echo "$value \n";
}
?>
輸入字符串:
ABCcd
abCDE
aaaaBddDDDeeFFggJ
輸出:
ABC
cd
ab
CDE
aaaa
B
dd
DDD
ee
FF
gg
J
非常感謝您的回答! – Azkidenz
您可以嘗試preg_match_all
從PHP,會給你的結果的數組。
preg_match_all('([A-Z]+|[a-z]+)',"ABCdeFGhAAAss", $matches);
var_dump($matches);
那麼是什麼問題?請分享您嘗試的代碼並解釋其中的錯誤。 –
我試過像'/([az] + [AZ] +)|([AZ] + [az] +)/'或'/([az])?([AZ])/'但不同的正則表達式,都是錯誤的。 – Azkidenz
如果你之前發佈過,你可以得到比「嘗試這個」更好的答案。 –