2016-12-23 96 views
0

我試圖匹配任何一組字符,直到像這樣的換行符:\n。我希望能夠訪問所有匹配的組。在換行符之前匹配任何一組字符

我使用去找我的正則表達式的文字是這樣的:

foo foo!\n *bar bar*\n *foo :* foo bar\n*foo :* 32 foo bar\n*Bar :* 37 foo foo\n*Time :* 11:00:00-14:00:00\n*Date :* 2016-12-23\n*Foo :* \n*bar* : 06XXXXXXXX 

現在,我嘗試多種解決方案和最佳的工作是這樣的正則表達式:

/([^\\n])\w+/ 

但它仍然不完美。它不考慮特殊字符和空格。

+1

的's.match(/.+/g)'應該夠了。甚至是'ssplit(「\ n」)'。字符串中是否有CR符號? –

+0

你的'[^ \ n]'將匹配除真正的反斜槓和真正的n之外的任何東西,這幾乎肯定不是你想要的。你可以嘗試'[^ \ n],但不幸的是'\ n'在字符集內不起作用。 –

+0

預期產量是多少? –

回答

1

你需要什麼,以便匹配至少一個(+)字符是新線(\n):

s = 'foo foo!\n *bar bar*\n *foo :* foo bar\n*foo :* 32 foo bar\n*Bar :* 37 foo foo\n*Time :* 11:00:00-14:00:00\n*Date :* 2016-12-23\n*Foo :* \n*bar* : 06XXXXXXXX' 
 

 
console.log(s.match(/([^\n]+)/g))

+0

有趣的是,如果你用點替換了'[^ \ n]',並且你不需要這些元素,你的正則表達式仍然可以工作。 –

+0

@torazaburo,有很多方法寫正則表達式的東西:)一個點確實是其中之一:)順便說一句,一個投票將非常感謝! – Dekel

+0

你應該仔細檢查它。 '\ n'在角色類中確實是有意義的。運行我的示例:) – Dekel

相關問題