2016-12-02 56 views
-5

使用http://www.regexr.com/試圖獲得僅匹配字母,空格和標點符號的正則表達式。例如,我有一堆數據,如下所示:正則表達式不允許使用數字

1. "Ever stop to think, and forget to start again?" - Some Guy 

等等。我如何使用正則表達式來抓取除最初的數字和句點之外的所有內容?

我的正則表達式現在是如下,但似乎搶號:

^(\s+|\d+|\w+|[^\d\s\w])+$ 
+0

Unicode字母呢? –

+0

沒有太多的正則表達式經驗,所以我不太確定我遵循。 – user1721449

+0

您鏈接的網站上有一個cheatsheet ...使用它。 – Cerbrus

回答

1

只需更換數字和期開出的字符串:

var str = '1. "Ever stop to think, and forget to start again?" - Some Guy'; 
 

 
console.log(str.replace(/^\d+\. /, ''));

正則表達式,\d+\.正在尋找:

  • 在字符串的開頭:^
  • 1個或更多數字:\d+
  • 後跟一個句點:\.
  • 後跟一個空格:

然後,它取代了匹配部,1.,用一個空字符串。

+0

我正在使用遵循JS語法的刮板,但除此之外不允許其他任何東西。 – user1721449

+0

@ user1721449:這意味着你不能使用JS? – Cerbrus

+1

不是以標準的方式,我只將它標記爲JS,因爲它使用的語法如此。 – user1721449

0

隨着replacestr.replace(/^[0-9. ]+(.*)/, '$1')

Look-behind在Javascript中不被支持,所以這不能用匹配來完成(並且在支持語言的時候,模式「在後面看」通常不能具有可變長度)。但是你可以匹配".*[ ].*之類的東西。

0

你可以只換你捕獲組周圍的一切除了你行的開始,其中應包括具體的模式,以排除..所以:

^\d+\.\s(.*)$

使用應你的空間特別是在返回後的一切後面的數字和句點,但只有在那些在