2013-12-20 112 views
0

中的每段第一行的正則表達式我試圖使用InDesign GREP樣式應用特定的格式。我的意圖是匹配段落的每一行。InDesign GREP

我第一次嘗試是:

(?<=\r)(\w)+(?=\r) 

但是這不會工作,如果它願意,那麼第一段難道不匹配。 有沒有人有想法?我正則表達式的技能是非常非常差......

爲了更好地理解:

Lorem ipsum dolor sit amet 
Sed diam nonumy eirmod tempor 

Lorem ipsum dolor sit amet 
Sed diam nonumy eirmod tempor 

Lorem ipsum dolor sit amet 
Sed diam nonumy eirmod tempor 

應該成爲

*Lorem ipsum dolor sit amet* 
Sed diam nonumy eirmod tempor 

*Lorem ipsum dolor sit amet* 
Sed diam nonumy eirmod tempor 

*Lorem ipsum dolor sit amet* 
Sed diam nonumy eirmod tempor 

回答

1

你試試這個:

(?<=\r\r|^\r|^)(.*) 

(一lookbehind必須是固定長度(除.net以外),但是有幾個正則表達式引擎允許使用alternat內部的離子)

如果它不工作,你可以使用一個捕獲組:

(\r\r|^\s*)(.*) 

(~b~b|^~b*)(.*) 

,並通過更換匹配:

$1*$2* 
1

如果我沒有弄錯,在grep開頭加一個^會迫使它匹配beg在一段中(至少它在我的CS5中)。

但是,如果您在段落開頭處有一個錨定對象,則無法將其作爲錨定對象進行grep處理,而是使用通配符對其進行grep處理 - 僅需.即可。

所以,如果你想找到[anchoredObject]Lorem

那麼你會用這個用grep:^.L

或者是這樣的:^.\t[\l\u]+將用grep段落的第一個字,如果它與一個開始錨定對象,然後是選項卡。 [\l\u]將匹配「任何字母」。

但如果你只是想要做的第一線,爲什麼不使用嵌套線條樣式(「首字下沉和嵌套樣式」,在「段落樣式選項」下,有你其實可以選擇什麼爲做第一行,即使行不中斷也不會破壞。