我正在尝试将自由格式文本转换为更有条理的文本。我有一个复杂的模式,可以匹配可用数据的绝大多数(远高于可接受的最小限制),我想用它来帮助构建数据,而不是逐个字符地解析文本。我刚遇到的问题是Oracle似乎没有办法处理捕获组(除非我以某种方式错过了它?)。
例如,我的表达式有很多命名的捕获组,例如((?<runit_ID>\d+)-)
和(STAT_N|STTN|STAT|STN) ?(?<STAT>\w+)
。代码库完全用PL / SQL编写,所以我不能使用C#或其他东西来按名称引用捕获组。人们如何在PL / SQL中解决这个问题?
答案 0 :(得分:1)
假设您使用的是Oracle 10g或更高版本,则可以将REGEXP_REPLACE与反向引用一起使用。
请参阅Oracle docs for REGEXP_REPLACE和此article at regular-expressions.info中的示例。