[] ブラケット間の最後の 7 桁のみを一致させる必要がある次の文字列があります。弦はこんな感じ
[15211Z: 2012-09-12] ([5202900])
([]) の間に含まれる文字列の 5202900 と一致させる必要があるだけです。同様の数字が文字列のどこにでも現れる可能性があるため、このようなものは機能しません。(\d{7})
次の正規表現も試しました
([[0-9]{1,7}])
しかし、これには文字列に [] が含まれていますか?
角かっこではなく 7 桁だけが必要で、数字が角かっこで囲まれていることを確認したい場合:
(?<=\[)\d{7}(?=\])
参考: これは、肯定的な先読みおよび肯定的な後読みと呼ばれます。
このトピックに関する良い情報源: http://www.regular-expressions.info/lookaround.html
をマッチング\(\[(\d{7})\]\)
してみてください。この正規表現全体にマッチしてから、エスケープされていない括弧の間のグループ 1 を取得します。質問ですでに示したように{7}
、0個以上、1個以上、または正確な範囲の場合は「*」に置き換えることができます。+
使用してみることができます
\[(\d{1,7})\]
最初のパターンが(数字だけでなく)あなたのもののように見える場合、これは次のような括弧で囲まれた数字のグループを抽出するために機能するはずです([123])
:
\(\[(\d+)\]\)