标签: preg-split

从split切换到preg_split时出现php preg_split错误

我从php拆分到preg_split之后从php 5.3兼容性中得到了这个警告:

PHP Warning:  preg_split(): Delimiter must not be alphanumeric or backslash
Run Code Online (Sandbox Code Playgroud)

php代码是:

$statements = preg_split("\\s*;\\s*", $content);
Run Code Online (Sandbox Code Playgroud)

如何修复正则表达式不再使用 \

谢谢!

php regex split preg-split

5
推荐指数
1
解决办法
6818
查看次数

每五个单词后分割字符串

我想每五个单词后分割一个字符串。

例子

这里有一些东西要输入。这是示例文本

输出

There is something to type
here. This is an example
text
Run Code Online (Sandbox Code Playgroud)

如何使用 来完成此操作preg_split()?或者有什么方法可以在 PHP GD 中进行文本换行吗?

php preg-split

5
推荐指数
2
解决办法
5234
查看次数

对于字符类,编译失败:缺少终止]

$date could be "23/09/2012" or "23-09-2012" or "23\09\2012" 
preg_split('/[\/\-\\]/', $date);
Run Code Online (Sandbox Code Playgroud)

不确定为什么PHP会继续抛出missing terminating ] error

php preg-split

5
推荐指数
1
解决办法
3346
查看次数

preg_split混合HTML和PHP标记,引号和注释除外

我有一个混有HTML的php页面.一些示例代码:

<?php echo "<p>some text</p>"; ?>/* <? some php in comments ?> */
<p>some HTML text</p> <!-- <h1>some HTML in comments</h1> -->
<? $header_info = <<<END 
\$some="<?php @ob_start(); @session_set_save_handler(); ?>";
END; ?>
<h2>Some more HTML</h2>
Run Code Online (Sandbox Code Playgroud)

我想在每个PHP和HTML标记处拆分,但保留/忽略引号或注释中的任何PHP标记或HTML标记.这是我到目前为止:

$array = preg_split("/((^<\?php)|([^'|\"]<\?php)|([^'|\"]<\?)|([^'|\"]\?>)|(<\%)|(\%>))/i", $string, -1);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是最终的$数组中缺少一些HTML结束括号'>'.我想保持HTML打开和关闭标签完好无损.有时我最终会

<p></p instead of <p></p> 
Run Code Online (Sandbox Code Playgroud)

它应该如下所示:

[0] echo "<p>some text</p>";  
[1] <p>some HTML text</p> 
[2] $header_info = <<<END 
\$some="<?php @ob_start(); @session_set_save_handler(); ?>";
END; 
[3] <h2>Some more HTML</h2>
Run Code Online (Sandbox Code Playgroud)

只要preg_split没有将它们视为任何分隔符并忽略它们中的任何一个,任何注释都不需要成为数组的一部分.

我也刚刚意识到一些php标签,特别是在使用eval()时最终会像这样结束:

"?> <p>some HTML text</p> <?";
Run Code Online (Sandbox Code Playgroud)

这意味着我的正则表达式中的引用与任何这些情况都不匹配.

Preg_match()可能是一个更好的选择,但不确定.

任何帮助都会非常感激,因为我在正则表达方面并不是非常聪明,而是在这一点上陷入困​​境.

非常感谢 :)

php regex preg-match preg-split

5
推荐指数
1
解决办法
675
查看次数

preg_split在PHP中有两个分隔符

如何合并两个分隔符preg_split?例如:

$str = "this is a test , and more";
$array = preg_split('/( |,)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($array);
Run Code Online (Sandbox Code Playgroud)

会产生一个数组

Array
(
    [0] => this
    [1] =>  
    [2] => is
    [3] =>  
    [4] => a
    [5] =>  
    [6] => test
    [7] =>  
    [8] => 
    [9] => ,
    [10] => 
    [11] =>  
    [12] => and
    [13] =>  
    [14] => more
)
Run Code Online (Sandbox Code Playgroud)

但我想得到

Array
(
    [0] => this
    [1] =>  
    [2] => is
    [3] =>  
    [4] => a
    [5] =>  
    [6] …
Run Code Online (Sandbox Code Playgroud)

php arrays split preg-split

5
推荐指数
1
解决办法
1518
查看次数

PHP:如何拆分UTF-8字符串?

我有以下代码不能使用UTF-8字符.我该如何解决?

$seed = preg_split('//u', $seed, -1, PREG_SPLIT_NO_EMPTY);
$seed = str_split('????????'); // and any other characters

shuffle($seed); // probably optional since array_is randomized; this may be redundant
$code = '';
foreach (array_rand($seed, 5) as $k) $md5_hash .= $seed[$k];

//We don't need a 32 character long string so we trim it down to 5 
$security_code = $code;
Run Code Online (Sandbox Code Playgroud)

我试过这段代码:

$seed = preg_split('//u', $seed, -1, PREG_SPLIT_NO_EMPTY);
Run Code Online (Sandbox Code Playgroud)

但它仍然无法正常工作.

php string split utf-8 preg-split

5
推荐指数
2
解决办法
5689
查看次数

正则表达式(preg_split):如何基于分隔符进行拆分,不包括一对引号中包含的分隔符?

我分裂了这个:

1 2 3 4/5/6 "7/8 9" 10
Run Code Online (Sandbox Code Playgroud)

进入这个:

1
2
3
4
5
6
"7/8 9"
10
Run Code Online (Sandbox Code Playgroud)

与preg_split()

所以我的问题是,如何基于分隔符进行拆分,不包括一对引号内的分隔符?

我有点想避免先用引号来捕捉东西,最好是把它当成一个衬里.

php regex preg-split

5
推荐指数
2
解决办法
355
查看次数

按空格和冒号拆分字符串,但如果在引号内则不拆分

有一个这样的字符串:

$str = "dateto:'2015-10-07 15:05' xxxx datefrom:'2015-10-09 15:05' yyyy asdf"
Run Code Online (Sandbox Code Playgroud)

想要的结果是:

[0] => Array (
    [0] => dateto:'2015-10-07 15:05'
    [1] => xxxx
    [2] => datefrom:'2015-10-09 15:05'
    [3] => yyyy
    [4] => asdf
)
Run Code Online (Sandbox Code Playgroud)

我得到了什么:

preg_match_all("/\'(?:[^()]|(?R))+\'|'[^']*'|[^(),\s]+/", $str, $m);
Run Code Online (Sandbox Code Playgroud)

是:

[0] => Array (
    [0] => dateto:'2015-10-07
    [1] => 15:05'
    [2] => xxxx
    [3] => datefrom:'2015-10-09
    [4] => 15:05'
    [5] => yyyy
    [6] => asdf
)
Run Code Online (Sandbox Code Playgroud)

preg_split("/[\s]+/", $str)如果值在引号之间,也尝试过但不知道如何转义。谁能告诉我如何并请解释正则表达式。谢谢!

php regex preg-match-all preg-match preg-split

5
推荐指数
1
解决办法
1082
查看次数

preg_split - 按空格和所选字符分割,但将字符保留在数组中

所以我有这个问题,我想用包含空格()和逗号(,)的模式分割一个字符串。我设法按该模式拆分我的字符串,但问题是我想将该逗号保留在数组中。这是我的字符串:

$string = "It's just me, myself, i and an empty glass of wine. Age = 21";
Run Code Online (Sandbox Code Playgroud)

这是我如何拆分它:

$split = preg_split('/[\s,]+/', $string, -1, PREG_SPLIT_DELIM_CAPTURE);
Run Code Online (Sandbox Code Playgroud)

这是我在这个例子中得到的数组(你可以看到逗号消失了)

这是我现在拥有的:

Array
(
    [0] => It's
    [1] => just
    [2] => me
    [3] => myself
    [4] => i
    [5] => and
    [6] => an
    [7] => empty
    [8] => glass
    [9] => of
    [10] => wine.
    [11] => Age
    [12] => =
    [13] => 21
)
Run Code Online (Sandbox Code Playgroud)

这是我想要的:

Array
(
    [0] => It's
    [1] => just …
Run Code Online (Sandbox Code Playgroud)

php regex preg-split

5
推荐指数
0
解决办法
1482
查看次数

在分隔符上分割字符串,除非包含在单引号或双引号中

我有一个像这样的字符串aa | bb | "cc | dd" | 'ee | ff',我正在寻找一种方法来分割它,以获得由字符分隔的所有值,|但字符串中包含的除外|

我们的想法是得到这样的东西[a, b, "cc | dd", 'ee | ff']

我已经在这里找到了类似问题的答案:https ://stackoverflow.com/a/11457952/11260467

然而,我找不到一种方法来适应具有多个分隔符的情况,这里有人在正则表​​达式方面比我不那么愚蠢吗?

php regex string split preg-split

5
推荐指数
1
解决办法
759
查看次数

标签 统计

php ×10

preg-split ×10

regex ×6

split ×4

preg-match ×2

string ×2

arrays ×1

preg-match-all ×1

utf-8 ×1