我不知道分割字符串的好辦法由|
分隔符,如果輸入的字符串可以是下列形式:PHP的正則表達式 - 分割字符串 - 一個輸出形式
"foo, bar"
"foo ,bar"
"foo,bar"
"foo , bar"
"foo bar"
"foo,,bar"
所以唯一可能的輸出字符串如下:
"foo|bar"
"foo|bar|other|here"
獨立於輸入字符串中有多少項。
任何想法,將不勝感激!
我不知道分割字符串的好辦法由|
分隔符,如果輸入的字符串可以是下列形式:PHP的正則表達式 - 分割字符串 - 一個輸出形式
"foo, bar"
"foo ,bar"
"foo,bar"
"foo , bar"
"foo bar"
"foo,,bar"
所以唯一可能的輸出字符串如下:
"foo|bar"
"foo|bar|other|here"
獨立於輸入字符串中有多少項。
任何想法,將不勝感激!
preg_replace('/\s*,\s*/', '|', $string);
這將處理與逗號的情況下,)如果您需要只用空格太一個:
preg_replace('\s*,\s*|\s+', '|', $string);
像這樣的東西應該做的伎倆......
$outputstring = preg_replace_all('/\b[ ,|]+\b/','|',$inputstring);
解釋:
\b
是一個字邊界,所以它正在尋找任何公司兩個詞邊界之間的空格,逗號或管道的混合。
我會做:
$input = preg_replace('/[ ,]+/', '|', $input);
這也將允許'foo ,,,,, bar'。 – NikiC 2010-09-24 15:20:42
這將匹配'FOO ,,,酒吧,,,,,foo'了。 – NikiC 2010-09-24 15:25:49
@nick - true。但提問者並未指定如何處理多個逗號;實際上,我讀了他的最後一個例子,意味着忽略它們。 – Spudley 2010-09-24 15:38:07
當我寫回答和評論時,這最後一個例子不在那裏。改變後你的回答顯然是正確的。 (爲什麼stackoverflow不再顯示所有的編輯?) – NikiC 2010-09-24 16:31:14