php regex - 分割字符串 - 一种输出形式

发布于 2024-09-25 10:16:38 字数 279 浏览 3 评论 0原文

如果输入字符串可以采用以下形式,我想知道用 | 分隔符分割字符串的好方法:

"foo,    bar"
"foo       ,bar"
"foo,bar"
"foo , bar"
"foo bar"
"foo,,bar"

因此唯一可能的输出字符串如下:

"foo|bar"
"foo|bar|other|here"

与输入中有多少项无关细绳。

任何想法将不胜感激!

I'm wondering a good way of splitting strings by a | delimiter if the input strings could be of the following form:

"foo,    bar"
"foo       ,bar"
"foo,bar"
"foo , bar"
"foo bar"
"foo,,bar"

So the only possible outputs strings are as:

"foo|bar"
"foo|bar|other|here"

Independently of how many terms are within the input string.

Any thoughts would be appreciated!

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

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

发布评论

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

评论(3

她如夕阳 2024-10-02 10:16:38
preg_replace('/\s*,\s*/', '|', $string);

这将处理带有逗号的情况;)如果您也需要只有空格的情况:

preg_replace('\s*,\s*|\s+', '|', $string);
preg_replace('/\s*,\s*/', '|', $string);

This will handle the cases with the comma ;) If you need the one with only the whitespace too:

preg_replace('\s*,\s*|\s+', '|', $string);
千纸鹤 2024-10-02 10:16:38

我会这样做:

    $input = preg_replace('/[ ,]+/', '|', $input);

I would do:

    $input = preg_replace('/[ ,]+/', '|', $input);
寄意 2024-10-02 10:16:38

像这样的东西应该可以解决问题......

$outputstring = preg_replace_all('/\b[ ,|]+\b/','|',$inputstring);

解释一下:

\b 是一个单词边界,因此它正在寻找两个单词边界之间的空格、逗号或管道的任意组合。

Something like this should do the trick...

$outputstring = preg_replace_all('/\b[ ,|]+\b/','|',$inputstring);

to explain:

\b is a word-boundary, so it is looking for any combination of spaces, commas or pipes between two word boundaries.

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