Heim > Backend-Entwicklung > PHP-Tutorial > javascript - 正则表达式分割字符串的问题

javascript - 正则表达式分割字符串的问题

WBOY
Freigeben: 2016-06-06 20:15:04
Original
1299 Leute haben es durchsucht

我想对字符串“1,2,,,'3,4',5”,实现分割结果为['1','2',‘’,‘’,‘3,4’,'5']
请教正则表达式该怎么写

============================================================
我自己用正则实现的,php代码:

<code>var_dump(preg_split("/[,]?'([^']+)'[,]?|[,]+?/", "1,2,6,7,,'3,4',5,8,9", 0, PREG_SPLIT_DELIM_CAPTURE));</code>
Nach dem Login kopieren
Nach dem Login kopieren

结果:

<code>array(9) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "6"
  [3]=>
  string(1) "7"
  [4]=>
  string(0) ""
  [5]=>
  string(3) "3,4"
  [6]=>
  string(1) "5"
  [7]=>
  string(1) "8"
  [8]=>
  string(1) "9"
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

不知道这样是否有问题

回复内容:

我想对字符串“1,2,,,'3,4',5”,实现分割结果为['1','2',‘’,‘’,‘3,4’,'5']
请教正则表达式该怎么写

============================================================
我自己用正则实现的,php代码:

<code>var_dump(preg_split("/[,]?'([^']+)'[,]?|[,]+?/", "1,2,6,7,,'3,4',5,8,9", 0, PREG_SPLIT_DELIM_CAPTURE));</code>
Nach dem Login kopieren
Nach dem Login kopieren

结果:

<code>array(9) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "6"
  [3]=>
  string(1) "7"
  [4]=>
  string(0) ""
  [5]=>
  string(3) "3,4"
  [6]=>
  string(1) "5"
  [7]=>
  string(1) "8"
  [8]=>
  string(1) "9"
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

不知道这样是否有问题

不会用正则,但这个问题可以用split()

<code>var str = "1,2,,,'3,4',5";
str.split(",");</code>
Nach dem Login kopieren

<code><?php $str = "'1','2','3','4','5','6','','','3,4','2333'";
    $result = preg_split("/',/", $str);

    for ($i = count($result) - 1; $i >= 0; $i--) {
        $result[$i] = trim($result[$i], "'");
    }

    var_dump($result);
</code>
Nach dem Login kopieren

结果:

<code>array(10) { 
    [0]=> string(1) "1" 
    [1]=> string(1) "2" 
    [2]=> string(1) "3" 
    [3]=> string(1) "4" 
    [4]=> string(1) "5" 
    [5]=> string(1) "6" 
    [6]=> string(0) "" 
    [7]=> string(0) ""
    [8]=> string(0) "3,4"
    [9]=> string(4) "2333" 
}
</code>
Nach dem Login kopieren

暂时想到是这样,能简化再修改。

(并不是最简答。

提供一个思路:

<code class="js">var str = "1,2,,,'3,4',5";

// 这里先利用正则将字符串 '3,4' 中的 `,` 先换成其他字符,如 `*`,然后再做 `split` 最后再检查每个元素里的 `*`,将它换回来
var temp = str.replace(/'(\w)+,(\w)+'/, '$1*$2').split(','); 

str = temp.map(function(n){
  return n.replace(/\*/, ',');
});</code>
Nach dem Login kopieren

希望有所帮助~ :)

('.*')|[^,]
这样,试试!
图片描述

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage