次の文字列があります。
here "is 'a' \"string\" that" does contain a 'lot of "weird"' stuff "i" to 'find'
is 'a' \"string\" that、lot of "weird"、iおよびを抽出したいfind。
何か案は?ありがとう!
次の文字列があります。
here "is 'a' \"string\" that" does contain a 'lot of "weird"' stuff "i" to 'find'
is 'a' \"string\" that、lot of "weird"、iおよびを抽出したいfind。
何か案は?ありがとう!
このパターンで試すことができます:
/"((?:[^"\\]+|\\"|\\)*)"|'((?:[^'\\]+|\\'|\\)*)'/g
二重引用符内のコンテンツはグループ 1 にあり、単一引用符内のコンテンツはグループ 2 にあります。
\"注意:上記のパターンを検出できる の前に別の\がある場合、\\はリテラルと見なされ、引用はエスケープされないため、このソリューションはエスケープされた引用に対して完全に防水ではあり\ません!
\\"このトラップを回避するために、奇数のバックスラッシュが に置き換えられている場合を確認すると(?:\\{2})*\\"、最初のパターンは次のようになります。
/"((?:[^"\\]+|(?:\\{2})*\\"|\\)*)"|'((?:[^'\\]+|(?:\\{2})*\\'|\\)*)'/g
この否定的な後読みベースの正規表現はあなたのために働くはずです:
/(["']).*?(?<!\\)\1/g
Javascript などの後読みをサポートしない正規表現
/(['"])(?:\1|.*?[^\\]\1)/g