请向我解释这个正则表达式

发布于 2024-12-19 12:40:51 字数 214 浏览 1 评论 0原文

我遇到了以下问题,将字符串拆分为“令牌”:

$tokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);

有人可以向我解释一下这与此有何不同:

$tokens = explode(' ', $string);

任何帮助将不胜感激:-)

I came across the following to split a string into "tokens":

$tokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);

Could somebody explain to me how this is different from this:

$tokens = explode(' ', $string);

Any help would be greatly appreciated :-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

没企图 2024-12-26 12:40:51

您提供的正则表达式:

$tokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);

将使用不是破折号 (-)、下划线 (_)、字母(小写或大写)或数字的分隔符将输入字符串拆分为标记。

而:

$tokens = explode(' ', $string);

只会使用空格作为分隔符将字符串拆分为标记。

The regular expression you provided:

$tokens = preg_split("/[^\-_A-Za-z0-9]+/", $string);

will split an input string into tokens using a delimiter that is not a dash (-), underscore (_), letter (lowercase or uppercase), or number.

Whereas:

$tokens = explode(' ', $string);

Will only split the string into tokens using whitespace as a delimiter.

氛圍 2024-12-26 12:40:51

[^\-_A-Za-z0-9]+ 的字面读法是:

匹配一个或多个非 -_ 或字母 A 到 Z(大写或非大写)或数字的单个字符。

preg_split 将根据与上述内容的匹配来拆分输入,但 explode 只会根据空白文字进行拆分。正则表达式中还没有排除其他字符,preg_split 将对其进行拆分,但 explode 不会,因此生成的数组可能会有所不同。

The literal reading of [^\-_A-Za-z0-9]+ is:

Match one or more induvidual characters that is not - or _ or a letter A to Z (capitalized or not) or a digit.

preg_split will split the input based on matches to the above, but explode will only split on a whitespace literal. There are other characters not excluded from the regular expression which preg_split will split on but explode won't, so the resulting arrays could be different.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文