我有一個字串:
str = "1 - hello world 1234 abc 5678 def"
我想抓住1234 abc繩子。
我當前的實作str[/\d \s*\D*$/]只抓取最后一個帶有單詞的數字。
uj5u.com熱心網友回復:
您可以使用
str[/\d \D (\d \s*\w )/, 1]
str[/\d \D \K\d \s*\w /]
請參閱此正則運算式演示和此正則運算式 #2 演示。
在這里,只搜索第一個正則運算式匹配。詳情:
\d- 一位或多位數字\D- 一個或多個非數字(\d \s*\w )- 第 1 組:一個或多個數字、零個或多個空格以及一個或多個單詞字符\K- 匹配重置運算子,丟棄到目前為止匹配的所有文本。
注意:
- 如果“單詞”是一大塊非空白字符,則替換
\w為\S - 如果你想支持浮點值(帶有小數部分的數字),你需要
\d用\d*\.?\dor\d (?:\.\d )?模式替換。
這是一個Ruby 測驗:
str = "1 - hello world 1234 abc 5678 def"
puts str[/\d \D (\d \s*\w )/, 1]
# => 1234 abc
puts str[/\d \D \K\d \s*\w /]
# => 1234 abc
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/451872.html
