2013-03-21 42 views
0

我所需要的是:正則表達式的資本的話,並排除範圍

  1. 匹配所有資本WORDS
  2. 比賽的第一個字母Capital
  3. 匹配與字母之間的資本文字和點的所有單詞的所有單詞,如F.M.I
  4. 在包含此字母的áéíóúÁÉÍÓÚÑñ中的一個單詞中,連續點1,2,3
  5. 排除具有第一個字母的單詞列表資本,就像這樣:En La El Los Ese
  6. 排除所有字母大寫的單詞列表,像SALUD
+6

請你告訴我們你試過了什麼?謝謝。 這些是一些簡單的問題,可以用google搜索。正如有的擡起頭: 首都所有'/^[A-Z] + $/' 第一個字母資本:'/^[A-Z] /' 我建議你研究更多的休息。 – 2013-03-21 12:31:20

+0

我試試這個preg_match_all(「/(L [AAOO] S \ C |?!是\ C |的\ C |的\ C |羅\ C |的\ C |某些\ C |某些\ C |某些\ b |小\ C | A \ b |幾個\ C |幾個\ C |任何\ C |任何\ C |任何\ C |太\ C |太\ C |太\ C |太\ C |塔爾\ C |傳說\ C |稀缺\ C |稀缺\ C |兩個\ C |坦塔\ C |這麼多\ C |這麼多\ C |每個\ C |所有\ C |所有\ C |所有\ C |所有\ C |更多\ b |少\ C | A \ b | A \ b |大部分\ C |許多\ C |許多\ C | A \ b |德\ C |恩\ C |如果\ b)[AZ] [A-ZA-ZÑÁÉÍÓÚáéíóúñ ] + /「$ titulo_copete,$ match_todas);但我不能排除單詞以全部大寫字母,像SALUD。爲什麼我該怎麼辦呢? – Nicopag 2013-03-21 12:39:56

+0

** **如何 - 作爲函數naveed S的回答。 :) **爲什麼 - 我希望我知道。 – 2013-03-21 12:43:18

回答

3

^(([A-Z](\.[A-Z])+)|([A-Z][A-Za-z]+))$比賽第一個字母大寫/斑點字分開的所有資本/大寫字母。

它所做的是

  • ([A-Z](\.[A-Z])+)一個大寫字母后跟模式點後跟一個大寫字母的一個或多個實例匹配 - 3要求

  • ([A-Z][A-Za-z]+)匹配大寫字母后跟一個或多個字母(也允許單個大寫字母,用*替換+) - 第一和第二個要求

爲了讓人物áéíóúÁÉÍÓÚÑñ如果第一個字母是大寫字母,就包括這些在字符類作爲

([A-Z][A-Za-záéíóúÁÉÍÓÚÑñ]+) 

中序,以排除特定的詞,你可以使用負前瞻像

^(?!SALUD)(?!Los)(([A-Z](\.[A-Z])+)|([A-Z][A-Za-záéíóúÁÉÍÓÚÑñ]+))$ 

它避免了SALUD和Los這兩個字。

  • (?!SALUD)確保以下字符序列不是SALUD,同樣就是(?!Los)

我沒有得到你的第四個要求很好。

http://www.regular-expressions.info/是學習正則表達式的好地方。

如果你想匹配無論開始和結束刪除錨點。

+0

嗨,它不是必須的啓動,需要爲此與規範。 – Nicopag 2013-03-21 13:21:00

+0

@ user2088434然後取出^錨和$ – 2013-03-21 13:23:35

+0

,比如我有這樣一行:在這個陽光燦爛的日子在M.S.P有意外健康。但健康是沒有問題的。在這裏,我需要:排除和健康。我需要匹配:陽光M.S.P卻意外健康。你的榜樣是行工作。第4點意味着我可以匹配像這個孩子或孩子的一句話。由於 – Nicopag 2013-03-21 13:23:40

0

我認爲這可能工作 \ B(?!LOS)((AZ +)|([AZ] [A-ZA-záéíóúÁÉÍÓÚÑñ] +))(SALUD?!)