Python 用于替换所有下划线的正则表达式,除非它们是标签的一部分
我不知道如何编写正则表达式语句来将所有下划线替换为Python 用于替换所有下划线的正则表达式,除非它们是标签的一部分,python,regex,Python,Regex,我不知道如何编写正则表达式语句来将所有下划线替换为',除非下划线是hashtag语句的一部分。 例如,如果我们有一个文本,我们希望替换除“请帮助”等情况之外的所有下划线 最简单的方法可能是将所有连续单词与下划线进行匹配,然后传递函数/lambda以旧式方式删除下划线,前提是第一个字符不是。: 这里涉及的正则表达式非常简单: 作为匹配组(()) 零个或一个符号(?) 后跟((?:)+)的不匹配组,至少重复一次 后跟下划线(\w*.)的任意数量的类字字符 看起来您希望我们为您编写一些代码。虽然许多
'
,除非下划线是hashtag语句的一部分。
例如,如果我们有一个文本,我们希望替换除“请帮助”等情况之外的所有下划线 最简单的方法可能是将所有连续单词与下划线进行匹配,然后传递函数/lambda以旧式方式删除下划线,前提是第一个字符不是
。
:
这里涉及的正则表达式非常简单:
- 作为匹配组(
)()
- 零个或一个符号(
)?
- 后跟(
)的不匹配组,至少重复一次(?:)+
- 后跟下划线(
)的任意数量的类字字符\w*.
sample = 'Here is_a_sample string #with_a_hashtag'
rstr = r'(#?(?:\w*_)+)'
# in this case, this matches like so:
# 'is_a_'
# '#with_a_'
new_sample = re.sub(rstr,
lambda s: s.group(0) if s.group(0).startswith('#') else s.group(0).replace('_', ' '),
sample)
print(new_sample)
# 'Here is a sample string #with_a_hashtag'