2016-12-02 5 views
-5

http://www.regexr.com/と一緒に遊んでみると、文字、スペース、句読点だけに一致する正規表現を取得しようとしています。Regexは数字を許可しません

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

など:たとえば、私はそうのように概説されたデータの束を持っています。最初の数字と期間以外はすべて正規表現を使って取得できますか?

私の正規表現は現在、以下の通りであるが、数字をつかむようだ:replace

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

ユニコード文字はどうですか? –

+0

あまりにも正規表現に慣れていないので、私は私が従うことをあまり確信していません。 – user1721449

+0

あなたがリンクしているサイトにチートシートがあります...それを使用してください。 – 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

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

Look-behindはJavascriptでサポートされていないため、マッチングのみではできません。また、サポートされている言語では、パターンが「背後にある」というのは可変長ではありません。しかし、".*[ ].*のように一致させることができます。

0

あなただけ..だから除外する特定のパターンを含める必要があり、あなたの行の先頭以外のすべての周りにあなたのキャプチャグループをラップすることができます:

それを使用して

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

は、具体的にあなたのスペースの後にすべてのものを返す必要があります数字とピリオドに続いて、それらが含まれている場合のみです

関連する問題