我有一个像
$str = "hyper text-markup_language";
$keywords = preg_split("/[_,-, ]+/", $str);
我使用了preg_split,但是它根据下划线和破折号来分割字符串,而不是基于空格。
我想要这样的结果
[0] = hyper
[1] = text
[2] = markup
[3] = language
参考方案
不错且简单的解决方案。
<?php
$str = "hyper text-markup_language";
$arr = preg_split("/[_,\- ]+/", $str);
var_dump($arr);
?>
这将产生此输出。
array (size=4)
0 => string 'hyper' (length=5)
1 => string 'text' (length=4)
2 => string 'markup' (length=6)
3 => string 'language' (length=8)
问题是当您编写-
字符时,RegEx会将其读取为从逗号到逗号(显然只是一个逗号)的范围值。
转义连字符并删除重复的逗号(方括号表示内部的所有内容的列表)将产生一个数组。
正则表达式解释
方括号称为Character Sets。
他们将匹配其中的任何内容。请参阅此示例。
/gr[ae]y/
这将匹配gray
和grey
。这是因为方括号匹配a
或e
。将以上内容更改为/gr[a-e]y/
表示gray
,grby
,grcy
,grdy
和grey
都将匹配。这是因为连字符(-
)是一个特殊字符,它将创建一个从连字符前面到后面的列表。
另一种选择(在@anubhava注释之后)是将连字符放在字符集的开头或结尾,以使其不需要转义,因为如果前面或后面没有任何内容,则无法创建范围。
PHP:将字符串拆分为字母和数字部分的最佳方法 - php我有几个格式的字符串AA11 AAAAAA1111111 AA1111111 分离字符串的字母和数字部分的最佳方法(最有效)? 参考方案 如果它们都是一系列字母,然后是一系列数字,并且没有非字母数字字符,那么sscanf()可能比regexp更有效$example = 'AAA11111'; list($alpha,$numeric) =…
将大字符串分成多个小字符串-PHP - php我从数据库中获取了一个长字符串,我需要对其进行解析,以使其不包含一个大字符串,而是多个,其中每个字符串都有2个字符。让我们以示例为例:我连接到表,获取此字符串:B1C1F4G6H4I7J1J8L5O6P2Q1R6T5U8V1Z5,之后,我必须对字符串进行解析,因此:B1 C1 F4 G6 H4 I7 J1 J8 L5 O6 P2 Q1 R6 T5 U8 V1…
PHP-将日期插入日期时间字段 - php我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数
php ziparchive类源代码 - phpImprove this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…
PHP getallheaders替代 - php我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…