正则表达式匹配三个不同的字符串

Uda*_*ant 0 regex

我需要编写一个与3个稍微不同的字符串匹配的正则表达式,并从中提取值.
字符串如下(不包括引号)

1. "Beds: 3, Baths: 3"
2. "Beds: 3 - Sleeps 10, Baths: 3"
3. "Beds: 3 - 10, Baths: 3"
Run Code Online (Sandbox Code Playgroud)

要提取的值,为

1. 3, 0 , 3  
2. 3, 10, 3  
3. 3, 10, 3   
Run Code Online (Sandbox Code Playgroud)

我写过类似的东西

 $pattern = '/Beds: ([0-9]+).*-[ Sleeps]* ([0-9]+).* Baths: ([\.0-9]+)/';
Run Code Online (Sandbox Code Playgroud)

它与字符串2和3匹配,但不与字符串1匹配.

Jeo*_*uan 5

只需从非数字中提取数字.

\D*(\d+)\D*(\d+)?\D*(\d+)
Run Code Online (Sandbox Code Playgroud)