【发布时间】:2022-01-08 00:58:19
【问题描述】:
我目前正在尝试替换一些复数词,例如从“birds”中删除“s”并在 bigquery 中将其替换为“bird”
但我希望他们忽略“less”、“james”、“this”等几个词。
我能够想出这个忽略“少”但仍然屠夫詹姆斯的方法。
SELECT REGEXP_REPLACE("James likes to chase birds","([^s])s\\b", "\\1" )
我得到的输出是“詹姆斯喜欢追逐鸟”,但我期待的是“詹姆斯喜欢追逐鸟”
更新: 我尝试使用负前瞻,但不幸的是,Bigquery Regex(RE2) 不支持此功能。
【问题讨论】:
-
当你说“像“less”、“james”、“this””这样的词时,你的意思是要避免在一个结尾匹配
s如果最后一个s前面有i、e或s,那么单词?那你需要"([^\\W\\d_ies])s\\b" -
感谢@WiktorStribiżew,但不是真的,假设我有“游戏”,我只想去掉“s”以获得其单数形式“游戏”。如果可能的话,我不介意在正则表达式中忽略这些词,不知道如何在没有负面前瞻性的情况下做到这一点
标签: regex google-bigquery stemming re2