3

下面的正则表达式在 Hive 中有效,但在 Spark 中无效。

它抛出一个错误dangling metacharacter * at index 3

select regexp_extract('a|b||c','^(\\|*(?:(?!\\|\\|\\w(?!\\|\\|)).)*)');

我也尝试过逃跑*\\*但仍然抛出 dangling metacharacter * at index 3.

4

1 回答 1

2

您可以使用

regexp_replace(col, '^(.*)[|]{2}.*$', '$1')

请参阅正则表达式演示

正则表达式详细信息

  • ^- 字符串的开始
  • (.*)-捕获组1(此组值在替换模式中通过$1 替换反向引用来引用):除换行符之外的任何零个或多个字符,尽可能多(行的其余部分)
  • [|]{2}- 双管(||串)
  • .*- 线路的其余部分
  • $- 字符串结束。
于 2021-02-26T20:22:07.893 回答