Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在uima RUTA中使用正则表达式检测以下字符串_Regex_Regex Greedy_Uima_Uimanageddocument_Ruta - Fatal编程技术网

Regex 在uima RUTA中使用正则表达式检测以下字符串

Regex 在uima RUTA中使用正则表达式检测以下字符串,regex,regex-greedy,uima,uimanageddocument,ruta,Regex,Regex Greedy,Uima,Uimanageddocument,Ruta,我试图在UIMA RUTA中使用正则表达式将下面的字符串注释为一个类型 样本: *******$10.00* 其他变体: *******$10.00*** *******$90.00* *******99美元** 正则表达式:*+\$\d+。\d+*+ UIMA正则表达式: SPECIAL{REGEXP("\\*+\\$\\d+.\\d+\\*+") -> MARK(AmC,1)}; 我无法检测到as*表示贪婪的正则表达式,但在使用escape character()时,仍然缺少

我试图在UIMA RUTA中使用正则表达式将下面的字符串注释为一个类型

样本:

  • *******$10.00*
其他变体:

  • *******$10.00***
  • *******$90.00*
  • *******99美元**

    正则表达式:*+\$\d+。\d+*+

UIMA正则表达式:

SPECIAL{REGEXP("\\*+\\$\\d+.\\d+\\*+") -> MARK(AmC,1)};
我无法检测到as*表示贪婪的正则表达式,但在使用escape character()时,仍然缺少一些内容。有解决方法吗

PS:它适用于其他正则表达式引擎,但不适用于UIMA RUTA


REGEXP条件将Java模式
matches()
应用于规则元素的匹配注释的覆盖文本。在您的示例中,这是
SPECIAL
,它是一个特殊字符。因此,正则表达式尝试在单个“*”上匹配,然后重新匹配下一个字符(不包括数字和句点)

REGEXP条件在这里并不真正合适。您应该使用简单的正则表达式规则,如:

"\\*+\\$\\d+.\\d+\\*+" -> AmC;

免责声明:我是UIMA Ruta的开发人员

您忘记了在星号之前双转义最后一个反斜杠(假设您需要双转义)。另外,也许您需要边界标记?
SPECIAL{REGEXP(.\\\\\+\$\\d+\\\.\\d+\\\*+.*)->标记(AmC,1)}???@TimBiegeleisen当我在regex101.com上测试时,它是有效的,但在UIMA RUTA中不起作用。这不起作用,因为该条件只应用于匹配注释的覆盖文本,它只表示所需字符串的一部分。相反,regex看不到足够的文本,无法完全匹配。我会补充一个答案…像个魔咒一样工作。非常感谢你如此精彩的解释。