Regex 用于从数字中删除字符(但不是所有字符)的正则表达式

Regex 用于从数字中删除字符(但不是所有字符)的正则表达式,regex,Regex,我在OpenRefine中有一列,我想操纵: 有字符串(例如:FL)、包含数字的字符串(123F423)和数字 我想去掉所有“污染”数字的字母(A-Z)(如123F423),但我不想更改“干净”字符串和数字的任何内容 例如: 飞行高度->飞行高度 123F324->123324 432531->432531 AB->AB 342J34->34234您可以搜索并删除: (?<=\d)[A-Za-z]+|[A-Za-z]+(?=\d) 并替换为$1$2(请参阅)您不能在单个操作中执行您想要的

我在OpenRefine中有一列,我想操纵:

有字符串(例如:FL)、包含数字的字符串(123F423)和数字

我想去掉所有“污染”数字的字母(A-Z)(如123F423),但我不想更改“干净”字符串和数字的任何内容

例如:

飞行高度->飞行高度

123F324->123324

432531->432531

AB->AB


342J34->34234

您可以搜索并删除:

(?<=\d)[A-Za-z]+|[A-Za-z]+(?=\d)

并替换为
$1$2
(请参阅)

您不能在单个操作中执行您想要的操作,因为正则表达式旨在提供特定的匹配,而不是缺少匹配,并且它不会为您连接多个结果

例如,您可以为
[A-Z]+
重复正则表达式并删除有问题的匹配项,或者在单个正则表达式中搜索一次所有数字
[0-9]+
,并连接所有结果匹配项

第二个选项会更快,因为它只计算表达式一次

编辑


@魂器有一个更好的答案。

你的意思是要将
123FL423
替换为
123F423
?不确定你怎么能这样理解它。从123F423开始,我想转到123423mmm,解释更多内容,向我们展示输入输出示例以了解更多内容。编辑这个问题。这是一个非常有趣的替代解决方案。
(\d)[A-Za-z]+|[A-Za-z]+(\d)