在PHP中,我试图将每个角色作为自己的组匹配。哪个会模仿str_split()
。我试过了:
$string = '123abc456def';
preg_match_all('/(.)*/', $string, $array);
// $array = array(2) {
// [0]=> array(2) {
// [0]=> string(12) "123abc456def"
// [1]=> string(0) "" }
// [1]=> array(2) { [0]=> string(1) "f" [1]=> string(0) "" } }
我期待的是:
//$array = array(2) {
// [0]=> string(12) "123abc456def",
// [1]=> array(12) {
// [0]=> string(1) "1", [1]=> string(1) "2"
// ...
// [10]=> string(1) "e", [11]=> string(1) "f" } }
我想使用正则表达式而不是str_split()
的原因是因为正则表达式将成为另一个正则表达式的基础。
答案 0 :(得分:4)
parens外面的*表示你想重复捕获组。 (这意味着您将只捕获最后一次迭代。)尝试任何单个字符的全局匹配,如下所示:
preg_match_all('/(.)/', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];
答案 1 :(得分:2)
试试这个:
preg_match_all('/./s', $str, $matches)
这也符合换行符。
答案 2 :(得分:0)
也许这就是你要找的东西:
preg_match_all('/(。)+?/',$ string, $阵列);
答案 3 :(得分:0)
我不知道这对这个电台是否有帮助,但你可以访问字符串的字母,如数组..所以
<?php
$a = "hede";
print $a[0] . "\n";
print $a[1] . "\n";
print $a[2] . "\n";
print $a[3] . "\n";
?>
将输出
ħ
ë
d
ë