InDesign GREP中每个第一行的正则表达式

时间:2013-12-20 14:35:42

标签: regex adobe-indesign

我正在尝试使用InDesign GREP-Styles应用某种格式。我的目的是匹配段落的每一行。

我的第一次尝试是:

(?<=\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

2 个答案:

答案 0 :(得分:1)

你试过这个:

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

(lookbehind必须是固定长度的(除了.net),但是有几个正则表达式引擎允许在里面使用替换)

如果它不起作用,您可以使用捕获组:

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

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

并将匹配替换为:

$1*$2*

答案 1 :(得分:1)

如果我没弄错的话,在grep的开头放一个^会强制它匹配段落的开头(至少在我的CS5中)。

但是,如果在段落的开头有一个无法访问的对象,则不能将其作为锚定对象进行grep,而是使用通配符进行grep - 只需.即可。

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

然后你会用这个:^.L

或类似的东西:^.\t[\l\u]+如果它以一个锚定的对象后跟一个制表符开头,那么它将会对该段落的第一个单词进行grep。 [\l\u]将匹配“任何字母”。

但是如果你只想做第一行,为什么不使用嵌套线型(在“段落样式选项”中的“Drop Caps and Nested Styles”下。你可以在那里选择什么为第一行做,即使该行未被中断。