1
我有這樣的「一些文字!33年11月22日」的字符串,當我打電話如何在模式中分割Rails中的字符串?
"some text !11.22.33".scan(/!(\w+)/)[0].join.to_s
它僅返回「11」。 我想返回「11.22.33」,所以掃描功能必須跳過點並取所有的字符串。我該怎麼做?
我有這樣的「一些文字!33年11月22日」的字符串,當我打電話如何在模式中分割Rails中的字符串?
"some text !11.22.33".scan(/!(\w+)/)[0].join.to_s
它僅返回「11」。 我想返回「11.22.33」,所以掃描功能必須跳過點並取所有的字符串。我該怎麼做?
如果你的字符串始終以這種格式,只需使用
"some text !11.22.33".partition('!').last
對於一個正則表達式的方法,你可以使用與捕捉匹配:
"some text !11.22.33"[/!([\d.]+)/, 1]
詳細:
!
- 字面!
符號([\d.]+)
- 捕獲組1:一個或多個數字或點1
參數告訴紅寶石只輸出所捕獲的值備選的正則表達式是/!(\d+(?:\.\d+)*)/
那將捕獲1+數字,然後捕獲.
和1+數字的0或更多序列(因此,如果存在尾點,則不會被捕獲)。
太棒了!非常感謝! – ValeMarz
如果數字和點總是以字符串結尾的已知格式,那麼可以使用'rpartition'而不是'partition':'「一些文本!11.22.33」.rpartition('!')。last' –