【发布时间】:2017-07-10 07:48:03
【问题描述】:
我正在尝试使用 UIMA RUTA 中的正则表达式将下面的字符串注释为类型。
示例:
- *******$10.00*
其他变体:
- *******$10.00***
- *******$90.00*
-
*********$99**
正则表达式:*+\$\d+.\d+*+
UIMA 正则表达式:
SPECIAL{REGEXP("\\*+\\$\\d+.\\d+\\*+") -> MARK(AmC,1)};
我无法检测到 * 代表贪婪的正则表达式,但由于我使用转义字符()仍然缺少某些东西。任何解决方法?
PS:它适用于其他正则表达式引擎,但不适用于 UIMA RUTA
【问题讨论】:
-
您忘记对星号之前的最后一个反斜杠进行双重转义(假设您需要双重转义)。另外,也许您需要边界标记?
-
SPECIAL{REGEXP(".*\\*+\\$\\d+\\.\\d+\\*+.*") -> MARK(AmC,1)};??? -
@TimBiegeleisen 当我在 regex101.com 上测试但在 UIMA RUTA 中不工作时它可以工作。
-
这行不通,因为该条件仅适用于匹配注释的覆盖文本,它仅代表所需字符串的一部分。
-
反之亦然:正则表达式将看不到足够的文本以完全匹配。我会添加一个答案...
标签: regex regex-greedy uima uimanageddocument ruta