1
- 私は正規表現がマッチするかどうかをテストしたいと、そうであれば、さらに
- 最初の試合を取得したいlineSequence で
- を開始し、私は正規表現の一致 からのキャプチャグループを返したいのですが
私が気にしなかったならば、私はlineSequenceで "first"を行い、もし存在すれば、正規表現を再実行します。Kotlin:一致する最初の行のキャプチャグループを取得する方法は?
val possibleMatch = input.lineSequence().first { myRegex.matches(it) }
...でも、私はkotlin-coolで正規表現を再実行する必要はありません。 MatchGroupにマップを使用してヌルをフィルタリングする必要がありますか?それはそう
input.lineSequence()
.mapNotNull { regex.find(it)?.groupValues?.get(1) }
.first()
.find(it)
もし戻っnull
、値がまだシーケンスから削除されます、そして:
input.lineSequence()
.mapNotNull { myRegex.find(it) }
.map { it.groupValues[1] }
.first()
もっと冗長に感じるかもしれませんが、あなたの意図は私にとって非常に明確です(主観的、はい)。 – Todd