2
我有一些可能的標題模式,我想使用Ruby正則表達式捕獲。Ruby正則表達式:複雜模式
- 只是標題
- 忽略|標題捕捉
- 忽略/標題捕捉
- [忽略]標題捕捉
我如何把這個變成一個正規表達式模式?
這僅與第二殼體方法處理:
def self.format_title(title)
title.match(/(?:.+)\|(.+)/).to_a.first.strip
end
我有一些可能的標題模式,我想使用Ruby正則表達式捕獲。Ruby正則表達式:複雜模式
我如何把這個變成一個正規表達式模式?
這僅與第二殼體方法處理:
def self.format_title(title)
title.match(/(?:.+)\|(.+)/).to_a.first.strip
end
的[
和第一其後]
之間的匹配一切你代碼可以改寫爲:title[/\|(.+)/),1].strip
對於所有四種情況,我記錄修改爲使用gsub
:
def format_title title
title.gsub(/.+[\|\/]/,'').gsub(/^\[.+\]/,'').strip
end
嘗試此正則表達式:
/^(?:[^|]*\||[^\/]*\/|\[[^\]]*\])?(.+)/
任選的非捕獲組(?:[^|]*\||[^\/]*\/|\[[^\]]*\])
由用於每一種情況下的圖案:
[^|]*\|
火柴一切上升到第|
,[^\/]*\/
匹配一切到第一/
,並\[[^\]]*\]
在開始串
謝謝。它可以在除第一個外的所有情況下正常工作:http://www.rubular.com/r/fF6s7zkuuy – krn 2011-01-23 11:34:35