【发布时间】:2011-12-28 04:18:06
【问题描述】:
我正在尝试preg_split() 由逗号、双引号或空格分隔的标签字符串。
这是我到目前为止的代码。这样做的目的是让用户在不使用 javascript 解决方案的情况下尽可能轻松地输入标签(我稍后可能会用到)。
$tagfield = 'Tag Tag2, Tag3 "Tag" "A Tag"';
$tags = preg_split('/[^(.)^a-zA-Z0-9]+/', $tagfield, NULL, PREG_SPLIT_NO_EMPTY);
我得到的输出是:
array (
0 => 'Tag',
1 => 'Tag2',
2 => 'Tag3',
3 => 'Tag',
4 => 'A',
5 => 'Tag',
)
我想要的输出是:
array (
0 => 'Tag',
1 => 'Tag2',
2 => 'Tag3',
3 => 'Tag',
4 => 'A Tag',
)
我不太确定应该如何获取两个单词的标签。
【问题讨论】:
-
为什么...为什么不选择单个分隔符?
-
归结为用户体验。这是我验证过程的一部分,而不是给用户一个错误,我希望它只是为他们“弄清楚”,因为它可以完成。
-
也许这只是一个“高级用户”的事情,但我更愿意被告知我可以使用一个分隔符,并且被告知 预先 而不是坐在那里试图猜测程序使用的是什么扭曲的逻辑。
-
我理解这种感觉,这就是为什么我要明确告诉用户某种格式是首选的,但我不想在可以轻松修复它时惩罚他们。
-
您的 cmets 似乎并没有提供帮助。你为什么评论?
标签: php regex arrays preg-split