首页 > 解决方案 > Grep:如何只找到一行文本中提到的第一个价格

问题描述

我在 Adob​​e Indesign 中有一堆可变文本,我希望每行文本中第一个提到的价格有另一种颜色。我对正则表达式完全陌生并且被卡住了。我使用以下 grep 查找价格,但它找到了文本中提到的所有价格。

€[0-9]+([.,][0-9]+)*

文本如下所示,我只需要获取粗体价格:

消费99.99 欧元,立减 25 欧元

消费150 欧元,立减 35 欧元

我尝试了很多关于堆栈溢出和在线提到的东西,但找不到正确的解决方案。添加 ? 最后让它变得懒惰并没有成功。我想我需要对 grep 代码进行一些分组,但找不到正确的方法。任何帮助都会很棒!

标签: grepadobe-indesigngrep-indesign

解决方案


  1. 创建两个字符样式“Bold”和“Roman”,后者应该与您的段落样式中的字符样式相同。

  2. 创建两个 GREP 样式。第一个应该将字符样式“Bold”应用于具有以下模式的文本:

    ^.*?(€\d+(?:,\d+)*)
    

    第二个应该将字符样式“罗马”应用于具有以下模式的文本:

    ^.*?(?=€)
    

在此处输入图像描述


推荐阅读