5

[] ブラケット間の最後の 7 桁のみを一致させる必要がある次の文字列があります。弦はこんな感じ

[15211Z: 2012-09-12] ([5202900])

([]) の間に含まれる文字列の 5202900 と一致させる必要があるだけです。同様の数字が文字列のどこにでも現れる可能性があるため、このようなものは機能しません。(\d{7})

次の正規表現も試しました

([[0-9]{1,7}])

しかし、これには文字列に [] が含まれていますか?

4

6 に答える 6

5

角かっこではなく 7 桁だけが必要で、数字が角かっこで囲まれていることを確認したい場合:

(?<=\[)\d{7}(?=\])

参考: これは、肯定的な先読みおよび肯定的な後読みと呼ばれます。

このトピックに関する良い情報源: http://www.regular-expressions.info/lookaround.html

于 2013-05-20T08:51:06.117 に答える
1

をマッチング\(\[(\d{7})\]\)してみてください。この正規表現全体にマッチしてから、エスケープされていない括弧の間のグループ 1 を取得します。質問ですでに示したように{7}、0個以上、1個以上、または正確な範囲の場合は「*」に置き換えることができます。+

于 2013-05-20T08:49:13.787 に答える
0

使用してみることができます

\[(\d{1,7})\]
于 2013-05-20T08:49:11.733 に答える
0

最初のパターンが(数字だけでなく)あなたのもののように見える場合、これは次のような括弧で囲まれた数字のグループを抽出するために機能するはずです([123])

\(\[(\d+)\]\)
于 2013-05-20T08:51:49.990 に答える