0

こんにちは、誰かがjquery正規表現で私を助けることができますか? 昨夜からここにスタックしていて、ついに私は助けを求めることにしました:)

ここに私の正規表現があります。文字列はexg変数にあります..次に、文字列をそれぞれ分割したい

matches[0] = 'eNortjI0sLBScgQDz3yTfK98XCdH59RKc4M8&+SSXFzzXFz3UE9H9yzfYMfCYtPiDLes0NSAXCL3nIj0osJcIvNCjwxLv6z8YhPTXFxv8&KSMNekjIrgqqzQvOJyy0zXNPMoZ4vS0PQS4+S0&IIgU7OssPIolygXJWtcMMMFXCch|eNortjI0sLRScgQDz3yTfK98XCfHXDBDjzx3X4&cXCLXygKn4tzsNCNcJ+NMk+xEM6Ok&OIq1+DcXFxLw8AwjyhHb480lyxTg&LkKv8sXw&zpCSnJE+XYo&EVH&3yKyAsMjEtKxSi4CIqlwigwL&giinXDC3wCiXKBcla1wwpPEmEA==|';

matches[1] = 'eNortjI0NLJScgQDz3yTfK98XCdH9yCPZJ&CiCpD36xcMMuSsLwox6qAwMqkUAPTlChHI8ugvDQL9zzjbBMfT8u8RIOgMgvnHJ9SpzynvFDfQAugijBLv6CgXDBT&0LzKMdI06BIf9OyKGd&U58kN19fV8colygXJWtcMNaqJP8=|';

var regex = /[a-zA-Z]+[0-9]+[/-=&_]+|/g;

var exg = 'eNortjI0sLBScgQDz3yTfK98XCdH59RKc4M8&+SSXFzzXFz3UE9H9yzfYMfCYtPiDLes0NSAXCL3nIj0osJcIvNCjwxLv6z8YhPTXFxv8&KSMNekjIrgqqzQvOJyy0zXNPMoZ4vS0PQS4+S0&IIgU7OssPIolygXJWtcMMMFXCch|eNortjI0sLRScgQDz3yTfK98XCfHXDBDjzx3X4&cXCLXygKn4tzsNCNcJ+NMk+xEM6Ok&OIq1+DcXFxLw8AwjyhHb480lyxTg&LkKv8sXw&zpCSnJE+XYo&EVH&3yKyAsMjEtKxSi4CIqlwigwL&giinXDC3wCiXKBcla1wwpPEmEA==|eNortjI0NLJScgQDz3yTfK98XCdH9yCPZJ&CiCpD36xcMMuSsLwox6qAwMqkUAPTlChHI8ugvDQL9zzjbBMfT8u8RIOgMgvnHJ9SpzynvFDfQAugijBLv6CgXDBT&0LzKMdI06BIf9OyKGd&U58kN19fV8colygXJWtcMNaqJP8=|eNodwdEKgjAUXDDQf&ELnLk57GnXJaiQq4do923YSuXqQKNgXx90zl4yxspE&TUhD21cMNVmqzQkKbdYGVQ6rfzrIy9+nEThYPBvhLU2bpezFs&YSw4H2xdEj+t4mzoVz8Rhuy&i1KTL4BCIx5mcd1tt7Bc16uT4A7goJkI=|eNodyN0KwiAUXDDgd9kb2CzGujoqyeaJFjmKc9fYMCGxkLWfpy&6Lr9UMsbLDP6qyGMdBZzOFRsmq3RYXYN8tW8kUQRdyJ7k4SNq2fntbJwP7QWQ5HOcSeQEKcd0TGzB3XXhY2&wV&6h7a27b17KGQImm9ZOpEhl+y9eOlwnaQ==|eNortjI0NLBScgQDz3yTfK98XCdHv3J3b9P80rwo54pwTy+DgkR3M3eXTMdAY6ekjChHD4PcFJ+KNIMg54Bko9IKxxC&XFyTQl+niqLc7NAkV6PIXCKjgFCD0FQTc4vSCuf0JP+SJIPcspKsKEdj48ys9CiXKBcla1wwr5gmBA==|eNortjI0sLBScgQDz3yTfK98XCdHp1KniMLwiNKglFxc71L3wqrAPEe3UF&PHMuq9BDPXDCflKTkkJDQCIM0s&B8rwxLR5co5ySXbJ9SY7dSH&+SyAqL7JQkV3cPX&NKc9OilKoU51ST&CQ&k6Ki0vIolygXJWtcMKhcMCZa|eNortjI0MLJScgQDz3yTfK98XCdHP5MoxySjJMfIFL&CEsuSUKNQv4LiSre8KKco56IUT3&L0CyfgMIox&IoXCevKFwns&R011THgMKsfLcoZ++MQo&0cNeyIPOqkPTIqrCqCstcMM+C8ChHz8goFyVrXDCmkyQg|eNortjI0NLJScgQDz3yTfK98XCdH&4z8yCin0szUgNwo54zkkBDTJB&TrIBA06S8XFxvr7SKyuDsKOeIZOPcsFA&&4woZ49UU&ekIKMq&7DURCOLimRjX9eKSmdDxxwXZ4&wjDT&lLDsJI&iqpB01yhcJ4v0KJcoFyVrXDA8ZVwnTQ==|eNortjI0MrBScgQDz3yTfK98XCdHLy&LSLfMyOxcIvfIioJit9Lc9NC04NK8NEvncHe&9Byv5MRwy8pC79ywgLT0SJ+qjORCC5PK0oh8i8yU0gpPR9PK7BJXn9SCxDznsEQXb7e8LLMCp+L8tMTyKJcoF7XUioLMotTi+Mw8WwMla1ww8SosXw==|eNortjI0NLRScgQDz3yTfK98XCdHr0pcJ+PAdP9sc+NcIvcyY4PEoNywyuyKzOQsC8twDx9Hg7TUkHyv7BDjMtPg3LwcjyinqlwiNxcXXCeXKFwn7wggEWmck59YHJhZ5Z4ZmF4R5eSfaFnkWuzpVFRglpxcXB7lEuWiZA1cMO+XJv4=|eNortjI0MLdScgQDz3yTfK98XCdHr7LgEpekEmO&xIBgo5CMoOSSKu&QDKPK5OziojS&&Bwvk&BK4yqLCFOjTNNcXC9Tz8C0jLzSkuCMYI88v8KIwORQi&TMQLM8i&B8Sy9Pl7QqXwt&gxQvrzLHKJcoFyVrXDCNviXB|eNortjI0NLRScgQDz3yTfK98XCdHn4pCp5yQxNIkM8MQ97SI0PLkoIqy9DJvZ3PXgPDwgKSIKKfwPKfi&CqvtAqTTNf0YMdwS8cM&yjH7Mr0omTTsLQqg&RcXLOK9Oz00LDgwijHCOeqyuC8KFwnf2fvSMcolygXJWtcMD&GXCfp|eNortjI0NLBScgQDz3yTfK98XCdHF6&gcEdTr5SiNO8KY1wnk1KLIE&&yowox+JcMB&XlGyzQH8&gwKvyIjyEMuyNI+ktMSQ7DDzdAsTA&fyKMckl&KS9HDDgNRKL0+jkCintLCStFwin+LcRC+PXFxcJ7+qwCiXKBcla1wwqjUmMg=='

   if(regex.test(exg)) {
      var matches = exg.match(regex);
      for(var match in matches) {
            alert(matches[match]);
      } 
       } else {
         alert("No matches found!");
       }`

しかし、私の正規表現は機能しません。誰かが私に正しい正規表現を与えることができますか? :) 助けてください..

4

3 に答える 3

1

エリアスの答えはおそらくこれを行う最も簡単な方法ですが、正規表現を主張する場合、これはどうですか:

var regex = /[a-zA-Z0-9\/-=&_+]+\|{0,1}/g

正規表現の説明とそれが機能しない理由:

[a-zA-Z]+  // Match one or more a-z upper or lower case
[0-9]+     // *THEN* match one or more 0-9
[/-=&_]+   // *THEN* match one or more of these characters
|          // *THEN* match a pipe

ここでの問題は、検索文字列に文字、数字、および記号が混在していることです。したがって、それらはすべて角括弧内にまとめて入れる必要があるため、それらすべての 1 つまたは複数を任意の順序で一緒に一致させることができます。あなたのものは、それらを特定の順序で配置します。最初に文字、次に数字、次に記号です。

最後の{0,1}は 0 または 1 つのパイプに一致するため、最後にパイプがない最後の一致をキャッチします。

ちなみに、JQuery 正規表現のようなものはありません。正規表現関数は JavaScript です。

于 2012-04-18T11:52:56.603 に答える
0

ええと...そのまま使用するのはどうsplitですかmarches = yourString.split('|');

これは文字列の配列を返しますが、パイプ文字は含まれませんが、必要に応じて部分文字列に連結するだけです。

于 2012-04-18T11:50:26.200 に答える
0

| の前にスラッシュがありません。これでよろしいですか?

var regex = /[a-zA-Z0-9\/-=&_]+\|/g;
于 2012-04-18T11:53:08.610 に答える