2012-09-19 51 views
1

在php中使用遷移類。
如果我有這樣的字符串:正則表達式:如何在第一個單詞之後動態獲取單詞,而不是以'_'分隔的字符串中的最後一個單詞?

create_users_roles_table 

,我想獲得第一和正確的最後一個字,再加上能夠得到詞正確的話,如果有隻有一個字插圖中,如:

create_users_table 

我該怎麼做?

我做:

(\B)_([a-zA-Z]+)_?([a-zA-Z]+)_table 

當我做create_users_roles_table
工作正常,併產生用戶角色
但是,當只做create_users_table它產生用戶s
顯然我需要它只生產用戶

有人嗎?

回答

0

我覺得應該讀

(\B)_([a-zA-Z]+)_?([a-zA-Z]+)?_table 

但是,如果在兩者之間有三個詞這是不行的。我建議剝離單詞,然後分開分開,因爲我不認爲正則表達式可以處理可變數量的捕獲組。

如果您可以確定可以有多少單詞,那麼您總是可以對此進行硬編碼。對於樹木或更少的字你可以使用

(\B)_([a-zA-Z]+)(?:_([a-zA-Z]+))?(?:_([a-zA-Z]+))?_table 
+0

非常感謝! –

相關問題