使用正则表达式在php中分割字符串

发布于 2024-12-02 07:21:01 字数 368 浏览 1 评论 0原文

我怎样才能分割这个字符串:

|^^^*|^^^*|^^^*|^^^*|^^^*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*

所以我只能得到值“mayvalue”。

目前,我正在使用:

$text = preg_split("/[^\|(*.?)\^$]/", $other);

但它返回 myvalue^nao

有什么想法吗?

how can I split this string:

|^^^*|^^^*|^^^*|^^^*|^^^*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*

so I can only get the value "mayvalue".

For the moment, I'm using:

$text = preg_split("/[^\|(*.?)\^$]/", $other);

But it returns myvalue^nao

Any ideas?

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

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

发布评论

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

评论(2

谎言月老 2024-12-09 07:21:01

您可以拆分两次,一次在 | 上,另一次在 ^ 上;如果您的大字符串位于 $input 中,则:

$pipes = preg_split('/\|/', $input);
$want  = preg_split('/\^/', $pipes[6]);

那么 $want[0] 就有您想要的内容。这可能比试图想出一个正则表达式来分割更容易。

演示:http://ideone.com/pxvay

由于 shesek 还没有回来,我将包括他们建议的方法。您还可以使用 explode 两次,因为您使用简单的分隔符:

$pipes = explode('|', $input);
$want  = explode('^', $pipes[6]);

$want[0] 再次满足您的需求。

这种方法的演示:http://ideone.com/SwGEH

You could split twice, once on | and again on ^; if your big string is in $input, then:

$pipes = preg_split('/\|/', $input);
$want  = preg_split('/\^/', $pipes[6]);

Then $want[0] has what you're after. This would probably be easier than trying to come up with one regex to split with.

Demo: http://ideone.com/pxvay

Since shesek hasn't come back I'll include their suggested approach. You can also use explode twice since you're working with simple delimiters:

$pipes = explode('|', $input);
$want  = explode('^', $pipes[6]);

and again $want[0] has what you're looking for.

And a demo of this approach: http://ideone.com/SwGEH

姜生凉生 2024-12-09 07:21:01

这将获取数组中 | 之后和 ^ 之前放置的所有“myvalue”和其他字符串,$matches[1]

$text = preg_match_all("/\|(.*?)\^.*?\^.*?\^.*?\*/", $other, $matches);

This will get all "myvalue" and other strings placed after | and before ^ in an array, $matches[1]:

$text = preg_match_all("/\|(.*?)\^.*?\^.*?\^.*?\*/", $other, $matches);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文