Decentralized matching markets on the internet allow large numbers of agents to interact anonymously at virtually no cost. Very little information is available to market participants and trade takes place at many different prices simultaneously. We propose a decentralized, completely uncoupled learning process in such environments that leads to stable and efficient outcomes. Agents on each side of the market make bids for potential partners and are matched if their bids are mutually profitable. Matched agents occasionally experiment with higher bids if on the buy-side (or lower bids if on the sell-side), while single agents, in the hope of attracting partners, lower their bids if on the buy-side (or raise their bids if on the sell-side). This simple and intuitive learning process implements core allocations even though agents have no knowledge of other agents' strategies, payoffs, or the structure of the game, and there is no central authority with such knowledge either.