2011-02-07 40 views
1

我有以下的正則表達式:正則表達式只匹配給定條件的換行符?

^(?!#)(?<=.+)$\r 

(設定全球和多標誌)

做的是與後面只有當它結束的行不以'#'開頭。

+0

所以,你不想美元*在`\ r`之後? – 2011-02-07 22:50:26

+0

@ELR:可以肯定的是,我刪除了`$`,但它仍然不起作用。使用多行和`$`時,\ r`可能不應該在那裏。 – 2011-02-07 22:52:18

回答

1
function doSplit(input){ 
    var newl=String.fromCharCode(13)+String.fromCharCode(10); //make a newline 
    var str = sInput.value.split(/\n/);      //split on newlines 
    for (var i=0,iMax=str.length; i<iMax; i++){    //loop through 
     //if it starts # add a newline 
     if (str[i][0]=='#') {str[i]+=newl;}     
    }; 

    return str.join(''); //join it back up 
} 

Example here

當然,這實際上會在末尾添加一個不存在的換行符(如果最終行以#),所以改變循環,以避免這種情況下,例如...

for (var i=0,iMax=str.length-1; i<iMax; i++){    //loop through 
0

零寬先行斷言需要關心的「不下手」,但我想你混淆的使用^和$(在多模式即是)

你可能想是這樣

(^|\n)(?!#)(\n)