首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除某个字符的特定实例,但不是全部?

如何删除某个字符的特定实例,但不是全部?
EN

Stack Overflow用户
提问于 2019-04-24 19:03:09
回答 2查看 747关注 0票数 0

我有一个用分号分隔的名字列表:

金哈克( BorisovaSvetlana A.)?;?;?;?;?;?;LiuHung-wen*;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?

我想删除所有的“?”,但前提是它们是以这种模式出现的。

我正在使用KNIME,并试图在字符串操作节点中使用regexReplace($col1$,"[?;]","")regexReplace($col1$,"?;",""),但是所有的实例都是?和;被移除。

我希望输出是

BorisovaSvetlana A.;KimHak Joong;Pu潇涛;刘洪文*

但实际产出是

BorisovaSvetlana A.KimHak JoongPu晓涛刘洪文*

任何正确方向的指导都将不胜感激,因为我对克尼姆和雷杰克斯都是新手。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-24 19:34:55

您可以转义?,而不是将它放到类似于这样的替代方案:\?。由于\需要因为引号而转义,所以正确的转义是字符串中的\\?。因此,以下内容应适用于您的请求:

代码语言:javascript
复制
regexReplace($col1$,"\\?;","")

对于您的输入,它会产生:

代码语言:javascript
复制
BorisovaSvetlana A.;KimHak Joong;PuXiaotao;LiuHung-wen*;?

票数 2
EN

Stack Overflow用户

发布于 2019-04-24 20:36:55

使用Regex:(?:;\?)+并用空字符串替换以删除?;。请注意,这与478步匹配。演示

然后使用Regex:([A-Z][a-z *.-]+)([A-Z][A-Za-z *.-]+)(?=;|$)并用$1, $2替换以获得预期的结果。演示

代码语言:javascript
复制
regexReplace(regexReplace($col1$,"(?:;\?)+",""), "([A-Z][a-z *.-]+)([A-Z][A-Za-z *.-]+)(?=;|$)", " $1, $2")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55836933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档