正規表現を使用して値を抽出する

誰かがこのシナリオで私を助けてください、

[Some text]

[Some text] Device ID: XYZ123 [Some text]

[Some tex]

上記のサンプルから XYZ123 を抽出したいと思います。あなたの助けに感謝。

0
どの言語を使う?
追加された 著者 ruakh,
[some text] [] が実際の文字をテキスト内に見つけられますか?
追加された 著者 Regexident,
@ruakh - C#を使う
追加された 著者 genuinebasil,
@Felix - no '['と ']'は本文にはありません。混乱させて申し訳ありません
追加された 著者 genuinebasil,

2 答え

あなたが使用することができます:

(?<=Device ID: )\b[a-Z0-9]+\b

(キャッチグループ#0を介してIDを取得)

あなたの正規表現エンジンがlookbehindsをサポートしていると仮定します。

Device ID: (\b[a-Z0-9]+\b)

(キャッチグループ#1を介してIDを取得)

注:ここでは、 []と[] はソーステキストに実際にはないと想定しています。

1
追加された
ありがとう。以下のコードが働いた。文字列式= @ "デバイスID:(\ b [a-z0-9] + \ b)";マッチマッチ= Regex.Match(入力、式、RegexOptions.IgnoreCase); if(match.Success){string key = match.Groups [1] .Value; Console.WriteLine(key); }デバイスID:XYZ123とデバイスID:XYZ123の両方で正しく動作することを確認するにはどうすればよいですか
追加された 著者 genuinebasil,
デバイスID:?(\ b [a-z0-9] + \ b) - これは私が必要と考えるものです
追加された 著者 genuinebasil,

こちらを試してください:

\[[^\]]+]\s*Device ID\:\s*(?[A-Z0-9]+)\s*\[[^\[]+\]
0
追加された