2024-05-15 21:08:05 发布
网友
嗨,我在一个NLP项目,我需要从文本中识别实体/组织名称的工作。但是,字符串中的单词是用(216;:,)字符串联的,如下所示:
RING_LECO:108_.250X.436X.093V_772_520
我想按如下方式清理字符串:
Ring Leco 108 .250X.436X.093V 772_520
我们删除了两个单词之间的特殊字符(A-Z:A-Z,A-Z:0-9),但保留了772和520之间的uu符号
有没有办法让我这么做
这个正则表达式应该做到:
_([^0-9]?<=)|(?=[^0-9])_
在英语中:“下划线之前或之后不是数字”
?<;=也就是说,在之前的就是要捕获的组
?=意味着接下来的就是要捕获的组
尝试使用
(?<=\D)[_:,]|[_:,](?=\D)
\D表示非数字字符,因此模式匹配至少一侧具有非数字字符的特殊字符(_:,)
\D
_:,
str = 'RING_LECO:108_.250X.436X.093V_772_520' pattern = re.compile(r'(?<=\D)[_:,]|[_:,](?=\D)') print(pattern.sub(' ', str))
输出:
RING LECO 108 .250X.436X.093V 772_520
这个正则表达式应该做到:
在英语中:“下划线之前或之后不是数字”
?<;=也就是说,在之前的就是要捕获的组
?=意味着接下来的就是要捕获的组
尝试使用
\D
表示非数字字符,因此模式匹配至少一侧具有非数字字符的特殊字符(_:,
)输出:
相关问题 更多 >
编程相关推荐