PHP 和 RegEx:如何将包含逗号、空格、冒号的字符串拆分为某个子字符串

1 php regex split

我正在尝试拆分一个字符串,该字符串可以是逗号、空格或分号分隔的。它还可以在每个分隔符之后包含一个或多个空格。例如

  1. chr1:22222-333333 或者
  2. chr1 22222 333333 或者
  3. chr1 22222 333333 或者
  4. chr1:22,222-33,333

其中任何一个都会产生一个包含三个值的数组["chr1","22222","33333"],我尝试了一些方法,但并不完整。尤其是第四种情况。非常感谢你帮助我。

Jiv*_*van 6

$yourString = "chr1:22222-33333"; // for instance

$output = preg_split("/:| |;/", $yourString);
Run Code Online (Sandbox Code Playgroud)

这相当于explode()但是当您需要多个分隔符时。

preg_split 语句中的字符说明:

/ 行为封闭正则表达式,如说 ok, that's happening here

|作为一个OR陈述,好像在告诉this OR this OR that

所以最后, /:| |;/意味着select anything that is ":" or " " or ";"

如果你想练习或只是更好地理解 RegEx 的原理,你可以看看这个不错的 RegEx 教程集合