文字列として次のものがあります。
{
"_matrix":[
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":0
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":1
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":0
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":-1
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":-.1
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":1.1
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":0
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":0
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":.1
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":0
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":1
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":0
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":0
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":0
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":0
},
{
"__FRAMEWORK_ANY_SPEC__":"namesdeleted.mumbojumbo`1[[System.Double, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]",
"value":1
}
]
}
私のメイン"value":
次}
の数字の前後にあるすべての数字を収集する必要があります。値は、任意の 10 進数/整数にすることができます。
個人的には、可能であれば科学的記数法にも対応したいと考えています。
私の現在の正規表現は次のとおりです。
(?<=("value": ))(?:\d*.)?\d+(?=})
私は C# で使用しているので?<=
、有効です。
私の現在の正規表現は、次のタイプの数値をフィルタリングできます。
次のことにも対応する必要があります。
-.1
科学的記数法なので"value":
、次と次の間のすべてをキャプチャする方法がある場合}
コメントで表現されているように、これは JSON のように見え、正規表現を使用しようとするのではなく、それを解析する必要があります。ただし、正規表現を使用する必要がある場合は、次のようなものが機能するようです。
(?<=("value": ))(?:-?\d*\.?)?\d+(?=})
変更は-?
、オプションのマイナス記号をカバーするために追加する.
ことであり、正規表現の任意の文字に一致する\.
ため、小数点と一致するはずだったと思われるものを変更するため、エスケープする必要があります。次に、 を追加してオプションにしました。.
?
https://regex101.com/r/drNrDS/1
1.1e10
and のような数をサポートしたい場合は1.1e-3
、オプションの一致をいくつか追加するだけです。
(?<=("value": ))(?:-?\d*\.?)?\d+(?:e|e-)?\d*(?=})
そのため、(?:e|e-)?\d*
一致するもの、e
またはe-
その後にいくつかの数字が続くものを追加しました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加