将字符串与特定字符分开的最佳方法 | PHP
Best way to divide the string from specific character | PHP
Sorry! This question may be similar but not a duplicate ...
假设我有如下不同大小的字符串:
zinc tab. 25mg №60
vita sip bla b6 50% b6mg №7
5-nok tab. 50mg №50
Blah blah №50
总之,我需要的结果应该是这样的:
$str1 = "zinc tab"; $str2 = "25mg №60";
$str1 = "vita sip bla b6"; $str2 = "50% b6mg №7";
$str1 = "5-nok tab."; $str2 = "50mg №50";
$str1 = "Blah blah"; $str2 = "№50";
分配的值以数字开头。即从最后一部分开始的数字需要一分为二。
我尝试使用 implode()
、explode()
、preg_split()
、preg_match()
函数。但是它们以一定的精度被分解成几个部分。例如:
$str = 'Bla bla 50% 400mg №4';
$results = preg_split('/[^0-9]/', $str);
print_r($results);
// Also i got same result with explode, implode functions...
//Then also tried with substr functions like that
$str[strlen($string) -2];
//But string indices are not always the same.
我也用过 substr()
函数,但字符串索引并不总是相同。有时它可以排在倒数第三或第二位。
我需要的结果如下:如果文本末尾的任何单词以数字开头或以№开头,则应在此处将其一分为二。像那样:
4 bla bla 40% 50mg №50 should return: 1) 4 bla bla 2) 40% 50mg №50
4 bla bla №50 should resturn 1) 4 bla bla, 2) №50
如何轻松快速地得到这样的结果?
谢谢!
这不是我所说的健壮的正则表达式。
但它清除了测试。
它试图找到定界的“单词”,这似乎是 number-letter 或 №-number 或 number-percent
preg_match_all("/(.*?)\s([\d|№]+[a-zA-Z%0-9]{1}.*)/", $str, $m);
Sorry! This question may be similar but not a duplicate ...
假设我有如下不同大小的字符串:
zinc tab. 25mg №60
vita sip bla b6 50% b6mg №7
5-nok tab. 50mg №50
Blah blah №50
总之,我需要的结果应该是这样的:
$str1 = "zinc tab"; $str2 = "25mg №60";
$str1 = "vita sip bla b6"; $str2 = "50% b6mg №7";
$str1 = "5-nok tab."; $str2 = "50mg №50";
$str1 = "Blah blah"; $str2 = "№50";
分配的值以数字开头。即从最后一部分开始的数字需要一分为二。
我尝试使用 implode()
、explode()
、preg_split()
、preg_match()
函数。但是它们以一定的精度被分解成几个部分。例如:
$str = 'Bla bla 50% 400mg №4';
$results = preg_split('/[^0-9]/', $str);
print_r($results);
// Also i got same result with explode, implode functions...
//Then also tried with substr functions like that
$str[strlen($string) -2];
//But string indices are not always the same.
我也用过 substr()
函数,但字符串索引并不总是相同。有时它可以排在倒数第三或第二位。
我需要的结果如下:如果文本末尾的任何单词以数字开头或以№开头,则应在此处将其一分为二。像那样:
4 bla bla 40% 50mg №50 should return: 1) 4 bla bla 2) 40% 50mg №50
4 bla bla №50 should resturn 1) 4 bla bla, 2) №50
如何轻松快速地得到这样的结果? 谢谢!
这不是我所说的健壮的正则表达式。
但它清除了测试。
它试图找到定界的“单词”,这似乎是 number-letter 或 №-number 或 number-percent
preg_match_all("/(.*?)\s([\d|№]+[a-zA-Z%0-9]{1}.*)/", $str, $m);