我必须为两个选项制作一个正则表达式,例如我有一个字符串:
apps; chrome
我必须将字符串分成两部分,没有空格
1→应用 2→铬
但问题是字符串可能是" apps; chrome" (没有空格;)
我试过爆炸
$part = explode(";", $search);
如果字符串在字符之间有空格,则第二部分有空格。
我想要的是一个正则表达式,用于跟踪案例将它们分成两部分
apps; chrome
apps;chrome
我希望你理解,对不起我的英语:)
答案 0 :(得分:3)
答案 1 :(得分:2)
尝试在各个部分使用trim
。
e.g。
$parts = array_map('trim', explode(';', $search));
答案 2 :(得分:1)
好吧,如果你确定分隔符,基本上你有两个选择。
1)使用explode(';',$ string)和array_map
这会爆炸字符串,并在数组上应用trim();
$slices = explode(';', $string);
$slices_filtered = array_map("trim", $slices);
2)使用preg_split(“/ [,; \ t \ n] + /”,$ string);
这会将“我们,正在; \ n冠军”等字符串分成{we,are,the,champions}
$slices_filtered = preg_split("/[,; \t\n]+/",$string);
**考虑到'选项'不会有空格;如果他们这样做,你应该使用像
这样的模式/[,;][ ]*/
答案 3 :(得分:1)
只是因为你指定了一个正则表达式......这应该允许你匹配任何由分号分隔的2个小写字母字符串,以及任何数字(或类型)的空格“噪音”。 / p>
$sFullString = "app; chrome"; //or wherever you're getting your string from
//RegExp pattern to match many strings including "app;chrome"
$sRegExp = '/^\s*([a-z]+);\s*([a-z]+)\s*$/';
//first replacement
$sAppMatch = preg_replace($sRegExp, "$1", $sFullString);
//second replacement
$sChromeMatch = preg_replace($sRegExp, "$2", $sFillString);
答案 4 :(得分:0)
在处理$ parts
之前,只需使用trim()函数答案 5 :(得分:0)
为何选择正则表达式?
<?php
$parts = explode(";", $search);
foreach ($parts as $k => $v) {
$parts[$k]=trim($v);
}