私は次の文字列形式を持っています:
[[TEXT|TEXT]] <-- the "|TEXT" is optional
そしてこれまでのところ、うまく機能するのは次のとおりです。
/([^\[]+)(?=\]\])/
どちらが返されますか:
TEXT
or
TEXT|TEXT
「|TEXT」が含まれていて、「|」の左側のみに一致する場合は、「|TEXT」まで一致させたいです。または「]]」のどちらが先かによって異なります。
助言がありますか?
私は次の文字列形式を持っています:
[[TEXT|TEXT]] <-- the "|TEXT" is optional
そしてこれまでのところ、うまく機能するのは次のとおりです。
/([^\[]+)(?=\]\])/
どちらが返されますか:
TEXT
or
TEXT|TEXT
「|TEXT」が含まれていて、「|」の左側のみに一致する場合は、「|TEXT」まで一致させたいです。または「]]」のどちらが先かによって異なります。
助言がありますか?
更新-にあるものだけを一致させ、そこに[[]]
ある場合は含めない|TEXT
場合は、次のことを試してください。
([^|\[]+?)(?=(?:\]\]|\|))
これは多かれ少なかれあなたの最初の正規表現ですが、それは|
またはで止まり]]
ます。
または、正規表現フレーバーが後読みをサポートしている場合は、次のことができます。
((?<=\[\[)([^\|]+?)(?=(?:\]\]|\|))
[[
これは、あなたがそれ以降一致することを強制するだけです。本当に必要というわけではありませんが、もう少し不明なコンテンツプルーフです。