你怎么能删除一个角色的特定实例,而不是全部?
How can you remove specific instances of a character, but not all?
我有一个用分号分隔的名称列表:
BorisovaSvetlana A.;KimHak
Joong;PuXiaotao;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;LiuHung-wen*;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?
我想删除所有的“?;”但前提是它们以这种模式出现。
我正在使用 KNIME 并尝试在字符串操作节点中使用 regexReplace($col1$,"[?;]","")
或 regexReplace($col1$,"?;","")
,但是 ?和 ;已删除。
我希望输出为
BorisovaSvetlana A.;KimHak Joong;PuXiaotao;LiuHung-wen*
但实际输出是
BorisovaSvetlana A.KimHak JoongPuXiaotaoLiuHung-wen*
任何正确方向的指导将不胜感激,因为我是 KNIME 和正则表达式的新手。
您可以转义 ?
而不是像这样将其放入替代项:\?
。由于引号需要转义 \
,因此正确的转义是字符串中的 \?
。因此,以下应该适用于您的请求:
regexReplace($col1$,"\?;","")
对于您的输入,它产生:
BorisovaSvetlana A.;KimHak Joong;PuXiaotao;LiuHung-wen*;?
使用正则表达式:(?:;\?)+
并替换为空字符串以删除 ?;
。请注意,这需要 478 步才能匹配。
Demo
然后使用正则表达式:([A-Z][a-z *.-]+)([A-Z][A-Za-z *.-]+)(?=;|$)
并替换为 ,
以获得预期结果。
Demo
regexReplace(regexReplace($col1$,"(?:;\?)+",""), "([A-Z][a-z *.-]+)([A-Z][A-Za-z *.-]+)(?=;|$)", " , ")
我有一个用分号分隔的名称列表:
BorisovaSvetlana A.;KimHak Joong;PuXiaotao;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;LiuHung-wen*;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?;?
我想删除所有的“?;”但前提是它们以这种模式出现。
我正在使用 KNIME 并尝试在字符串操作节点中使用 regexReplace($col1$,"[?;]","")
或 regexReplace($col1$,"?;","")
,但是 ?和 ;已删除。
我希望输出为
BorisovaSvetlana A.;KimHak Joong;PuXiaotao;LiuHung-wen*
但实际输出是
BorisovaSvetlana A.KimHak JoongPuXiaotaoLiuHung-wen*
任何正确方向的指导将不胜感激,因为我是 KNIME 和正则表达式的新手。
您可以转义 ?
而不是像这样将其放入替代项:\?
。由于引号需要转义 \
,因此正确的转义是字符串中的 \?
。因此,以下应该适用于您的请求:
regexReplace($col1$,"\?;","")
对于您的输入,它产生:
BorisovaSvetlana A.;KimHak Joong;PuXiaotao;LiuHung-wen*;?
使用正则表达式:(?:;\?)+
并替换为空字符串以删除 ?;
。请注意,这需要 478 步才能匹配。
Demo
然后使用正则表达式:([A-Z][a-z *.-]+)([A-Z][A-Za-z *.-]+)(?=;|$)
并替换为 ,
以获得预期结果。
Demo
regexReplace(regexReplace($col1$,"(?:;\?)+",""), "([A-Z][a-z *.-]+)([A-Z][A-Za-z *.-]+)(?=;|$)", " , ")