2014-11-03 47 views
0

我是正則表達式的新手,我在使用正則表達式識別相同的連續詞時遇到問題。以下是情景。正則表達式找到相同的連續詞

下面是數據:

;af;aj;am;an;ao;ap12;aq123;ar;as;ad;af1223; 

和我目前的正則表達式是(;[a-z][a-z];),它僅匹配以下組;自動對焦;; am;; ao;; ar;,; ad;但我的期望是匹配所有這些集合。 ; af; aj; am; an; ao; & ; ar; as; ad ;.

請大家指導我如何匹配這些模式?

+1

它們是什麼「相同」? – nhahtdh 2014-11-03 10:22:56

+0

使用'*'運算符或'+'運算符。例如:'(; [a-z] [a-z];)+'匹配一個或多個集合 – 2014-11-03 10:23:02

+0

@Maciej,我認爲你的模式不會工作,因爲沒有雙重「;」 (;;)在數據和你的模式只匹配第一個o「單詞」(「; af;」在數據中) – Jdamian 2014-11-03 10:28:20

回答

1

這似乎是你試圖提取這個;[a-z][a-z];格式的子字符串。如果是的話,那麼你可以簡單地把你的正則表達式放在一個預見範圍內來進行重疊匹配。

(?=(;[a-z][a-z];)) 

DEMO

+0

謝謝。其工作.. – jerald 2014-11-05 00:06:31

0
(;[a-z][a-z](?=;)) 

嘗試this.This返回您正在尋找但其並不清楚他們是如何同組。

爲什麼URS不是由於這一事實工作沃斯原因([AZ] [AZ] ;)犯規留下;下一個元素開始with.So它不能匹配,因爲沒有;在它的前面。一個前瞻斷言並不是cosplay ;從而使所有匹配。

查看演示。

http://regex101.com/r/tF4jD3/4