簡體   English   中英

正則表達式只匹配給定條件的換行符?

[英]RegEx to match only a newline character with given conditions?

我有以下正則表達式:

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

(設置了全局和多行標志)

想做的當換行符以“#”開頭時才匹配換行符。

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
}

這里的例子

當然,這實際上會在末尾添加不存在的換行符(如果最后一行以#開頭),因此請更改循環以避免這種情況,例如...

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

零寬度的超前斷言考慮了“不是開頭”,但我認為您正在混淆^和$的使用(在多行模式下)

您可能想要類似

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM