我在使用正则表达式时遇到一些字符串清理问题...
我想:
1)如果第一个char是Cyrillic =>删除所有字符,直到第一个数字或字符串中的拉丁字符为
2)如果第一个字符是拉丁语=>将char保存到字符串
第一部分有模式:
$pattern = '/[(\s)(a-zA-Z0-9)(\№)(\_)(\-)(\.)(\/)(\s)(\,)(\')(\")(\*))^(\(\))]*\s/u';
但是对于第二部分,如果拉丁字符的位置是输入字符串的中间,我输出中没有...
有人可以帮我编辑正则表达式吗?
谢谢
例如($ in [必须在结果中]):
foreach($in as $item){
$matches = array();
$result = preg_match ($pattern, $item, $matches);
print_r($matches);
}
$in = array();
$in[RZL 200 -200] = 'RZL 200 -200 литров, Накопительный электроводонагреватель';
$in[EKH 50U-] = 'EKH 50U-Вертикальный электроводонагреватель 50 литров';
$in[EKF 70U,] = 'EKF 70U, Суперплоский электрический водонагреватель -70 литров, Глубина=320 мм';
$in[FF06 1/2"AA] = 'FF06 1/2"AA фильтр механической очистки ,на холодную воду.';
$in[FF06 1"AA,] = 'FF06 1"AA, фильтр механической очистки на холодную воду.';
$in[F76 S 1/2" AA (AB, AC, AD),] = 'F76 S 1/2" AA (AB, AC, AD), фильтр механической очистки , на холодную воду';
$in[ProfiRoll-2000, 13,3-18,2, 2000] = 'ProfiRoll-2000, 13,3-18,2, 2000 Вт, Телый пол в цементно-песчаную стяжку';
$in[ProfiMat 160-2,0] = 'ProfiMat 160-2,0 кв.м, 0,320 Вт';
$in[№203 ,] = 'Набор №203 , Набор фильтрэлементов №203(A560,A-560E,Em,Ecp,A-575E,Em,Ecp)';
$in[A-575Ep box MAX,] = 'A-575Ep box MAX, Система обратного осмоса, 5 ступеней очистки со встроенным баком, насосом повышения давления и индикатором качества воды, 380 л/сутки (Россия)';
$in[1500 (] = 'Емкость из ПЭ 1500 (ЕЭЦ1500) л, цилиндрическая вертикальная для питьевой воды';
$in[HLA-12R-B] = 'Алюминиевый радиатор HLA-12R-B';
$in[SLH 25/L30 ST] = 'Система обогрева трубопроводов SLH 25/L30 ST';
$in[FFH 400/12,0] = 'Нагревательный мат FFH 400/12,0';
$in[AF11S-1A,B,С,D,E,F.] = 'AF11S-1A,B,С,D,E,F.Запасная сетка для F76S,СS,FK76CS и HS10S (от 1/2" до 11/4"), 100,20,50,200,300,500микрон';
$in[A-11 BE (BIG BLUE 10)] = 'Фильтр A-11 BE (BIG BLUE 10) В сборе с кронштейном,ключом и фильтрующим элементом,1 ступень очистки (механическая)';
$in["TROPIX"] = 'Комплект "TROPIX" МНН-130-1 (1 кв. метр)';
答案 0 :(得分:0)
你也许可以使用这个正则表达式:
^[^A-Z0-9№_,\/'"*().-]*\s*([A-Z0-9№_,\/'"*(). -]+)
它匹配字符串开头的任意数量的非拉丁字符,并在它看到一个(或更多)字符后捕获任何拉丁字符。
请注意,模式会检测到一些西里尔С
。