1

次のような結果リストがあります。

1lemon_king9mumu (2-1), YearofHell (2-0), kriswithak (2-1)0.44440.75000.4444
2mumu6lemon_king (1-2), MogwaiAC (2-0), Dathanja (2-1)0.66670.62500.5655
3MogwaiAC6Dathanja (2-0), mumu (0-2), Jebnarf (2-1)0.55560.57140.5417
4Jebnarf6YearofHell (2-1), kriswithak (2-0), MogwaiAC (1-2)0.44440.62500.4266
5YearofHell3Jebnarf (1-2), lemon_king (0-2), Mig82 (2-1)0.66670.37500.6012
6Dathanja3MogwaiAC (0-2), Mig82 (2-1), mumu (1-2)0.55560.37500.5417
7Mig823Bye, Dathanja (1-2), YearofHell (1-2)0.33330.42860.3750
8kriswithak0Jebnarf (0-2), lemon_king (1-2)0.83330.20000.6875

ランク(最初の数字)の後に人のユーザー名を取得できるようにしたいのですが、それはプレイヤーが獲得したポイントと最初の対戦相手と一緒にマッシュアップされます。

たとえば、一人称は「Lemon_king」で、対戦相手は「Mumu」、「YearofHell」、「Kriswithak」でした。右側の数字は私には関係ありませんが、私が抱えている大きな問題は、プレイヤーが獲得したポイントの数がそこにあるということです。Lemon_King が 9 ポイントを獲得して 1 位になりました。通常は 1 から 9 までの文字列を検索して名前を取得しますが、プレイヤーのユーザー名に 9 が含まれている場合もあります。

人のユーザー名を取得できるようにするために、この問題に対する良い解決策を考えられる人はいますか?

ありがとう

4

4 に答える 4

3

比較するユーザー名のリストが必要だと思います。結果リストが正規表現に十分な「規則性」を持っているようには見えません。

たとえば、次の行

7Mig823Bye, Dathanja

"Mig82" 3 ポイント対 "Bye, Dathanja" の場合もありますが、"Mig8" 23 ポイント、"Bye, Dathanja" または "Mig8" 2 ポイント "3Bye, Dathanja" の場合もあります。

あれは正しいですか?もしそうなら、あなたは単純な解決策で逃げるつもりはないからです.

編集:ウィルソンは、ユーザー名のリストを取得することはオプションかもしれないとコメントしました. その場合、次のようなものが機能する可能性があります。

/^\d+?(username1|username2|username3)\d+?(username1|username2|username3)/

おそらく、うまくいくには少し手間がかかるでしょう。

あなたが提供したデータでそれを示すplnkrがあります:http://plnkr.co/edit/nJeGfbfHgvh5zJcTWRXS?p=preview

とはいえ、正規表現はこの仕事に適したツールではないかもしれません。

于 2013-07-27T21:54:36.517 に答える
0

最初の数字と 2 番目の数字の間が必要な場合は、もう少し情報を提供してください。

[0-9]+([^0-9])

最初のグループには、最初のユーザー名が含まれます。

これについてコメントしてください(チェックするので)、質問をより詳細に編集してください。

于 2013-07-27T21:55:04.310 に答える