2017-02-08 24 views
2

(後に私は正規表現のマッチ数

\(\d+ 

を試してみました

。開き括弧「(」文字の後に数字のAA可変長に一致するように正規表現を使用しようとしています。しかし、その正規表現は、ブラケットを含み。?。試合中にどのように私はそれを除外しない

私は試合を行うには崇高なテキスト正規表現エンジンを使用しています

+0

JavaScriptはありますか? –

+0

崇高なテキストビルドシステムの正規表現 – ScottF

答えて

4

あなたが使用することpositive lookbehind

(?<=\()\d+ 

ここ 1つの制限があります:あなただけ後読みで知ら幅のパターンを持つことができます。 (?<=\(|\s{5})\d+を使用できますが、(?<=\d:\s*)\d+は使用できません。 \Kはそれが使用されている場所で試合を「切り捨て」以来

enter image description here

あなたは、後読みの長さの制限を回避するために、パターンにマッチしたすべてのテキストを\K「マッチリセット」演算子を使用することができますその左側が省略されているテキストがであるので\Kが実際に後読みと等価ではないことを

\(\K\d+ 

[enter image description here]

注それはが消費されたですが、lookbehindsはテキストを消費しません。

+0

長年にわたって正規表現を使って作業しています。これは '\ K'演算子を初めて見るときです。ありがとう! –

+0

@HubertGrzeskowiak:これは、PCRE、Boost、Onigmoの正規表現ライブラリで利用できるPerlからの便利な演算子です。 –

1

あなたはキャプチャグループを使用することができます。

/\((\d+)/ 

エスケープされていない括弧は、各一致から抽出できる正規表現の一致グループです。あなたがsearch'n'replaceシステムを持っているなら、$1がグループにアクセスするためによく使われます。