notepad++ に巨大な JSON ファイルがあります。私の専門分野の 1 つは製品です。値の最後に文字 A が含まれるすべての商品を調べたいと考えています。
これは私のデータです
{
"ID": 689,
"product": "GIPA",
"JobID": 66349,
"FriendlyName": "Android",
},
{
"ID": 689,
"product": "TKNA",
"JobID": 66350,
"FriendlyName": "Android",
},
{
"ID": 689,
"product": "TNRG",
"JobID": 66351,
"FriendlyName": "Android",
},
{
"ID": 689,
"product": "GAJT",
"JobID": 66352,
"FriendlyName": " Android",
},
2 つの方法を試しましたが、うまくいきません
"product": "^[a-z|A-Z|0-9]+[^A]\s?I{1}$"
そして
"product": ".*(\A)$"
最初の 2 つのレコードを見つけるにはどうすればよいですか?
値が A で終わらないすべての製品ラインを照合するという意味ですか? "積": "[a-zA-Z0-9]+(?
– Wiktor Stribiżew
2020 年 9 月 4 日 16:47
ご存知のとおり、私が質問したのは、あなたが試したパターンが以前に書いたことと矛盾しているためです。次に、「製品」: 「[a-zA-Z0-9]*A」? "製品": "[^"]*A"?一致するものを見つけるだけで、必要な最終結果は何ですか?交換しませんか?
– Wiktor Stribiżew
2020 年 9 月 4 日 16:48
------------------------
正規表現に関する主な問題点に注意してください。
"製品": "^[a-z|A-Z|0-9]+[^A]\s?I{1}$"パターン内に ^ が含まれているため、文字列の途中に文字列の始まりがなく、^ の前の改行に一致するパターンがないため、一致することはありません。
[a-z|A-Z] は文字に一致し、かつ | にも一致します。 | は使用しないでください。リテラルに一致するつもりがない場合は、文字クラス内で | char ([...] の間の「代替」の意味が失われます)
[^A] は、A を除く任意の文字と一致します。
{1} は常に冗長であるため、削除してください。式内のすべてのパターンは、デフォルトで 1 回試行されます。
"製品": ".*(\A)$"含まれています\A、文字列アンカーの開始。パターンも無効になり、どの文字列とも一致しなくなります。
使用できます
"product": "[^"]*A"
一致します
"製品": " - リテラル文字列
[^"]* - "" 以外の 0 個以上の文字
「あ」 -A」弦。