Python 如何替换一个单词,但前提是它不与另一个单词组合?
我有一个(编造的)句子是这样的 孩子们必须做家庭作业,在此期间不得使用手机。他们必须不发牢骚地做家务 我想换一个Python 如何替换一个单词,但前提是它不与另一个单词组合?,python,replace,Python,Replace,我有一个(编造的)句子是这样的 孩子们必须做家庭作业,在此期间不得使用手机。他们必须不发牢骚地做家务 我想换一个 必须→ **必须** 不得→ **不得** 通用的.replace(“必须”,“必须**”)(对于不得,也一样)将不起作用。为了解释这些组合词,我目前丑陋的解决方案是 将**替换为zkjhufyslkdjfsdyotfjsgkj 将替换为zkjhufyslkdjfsdyotfjsgkj (此时必须处理旧的**不能**和新的必须) 对于普通必须执行相同的操作(使用不同的替换)
→ <代码>**必须**必须
→ <代码>**不得**不得
.replace(“必须”,“必须**”)
(对于不得,也一样)将不起作用。为了解释这些组合词,我目前丑陋的解决方案是
- 将
**替换为zkjhufyslkdjfsdyotfjsgkj
- 将
替换为zkjhufyslkdjfsdyotfjsgkj
(此时必须处理旧的**不能**
和新的必须
)
- 对于普通
必须执行相同的操作(使用不同的替换)
- 用
**替换zkjhziufyslkdjfsdyotfjsgkj
**不得**
- 用
**必须**
这会管用,但很难看。(我不考虑只有一个或多个!=2个*
实例的一些边缘情况)
除了[something aword],“用[something aword]替换[something]还有更优雅的说法吗?您可以使用一个带有可选组的模式,并替换为双**
之间的完全匹配,如**
\b必须
一个单词边界以防止部分匹配,而匹配必须
(?:NOT)?
可以选择匹配空格和NOT
\b
单词边界
见
或在左侧和右侧声明空白边界:
(?<!\S)MUST(?: NOT)?(?!\S)
(?
您可以使用带有可选组的模式,并替换为双**
之间的完全匹配,如**\g**
\b必须
一个单词边界以防止部分匹配,而匹配必须
(?:NOT)?
可以选择匹配空格和NOT
\b
单词边界
见
或在左侧和右侧声明空白边界:
(?<!\S)MUST(?: NOT)?(?!\S)
(?
先用字符串前面的空格替换'MUST NOT'
,然后再替换'MUST'
,怎么样
sentence.replace('MUST NOT', '**MUST NOT**').replace(' MUST', ' **MUST**')
# Children **MUST** do their homework and **MUST NOT** use their phones during that time. They **MUST** do their chores without whining.
先用字符串前面的空格替换“不得”
,然后再替换“必须”
,怎么样
sentence.replace('MUST NOT', '**MUST NOT**').replace(' MUST', ' **MUST**')
# Children **MUST** do their homework and **MUST NOT** use their phones during that time. They **MUST** do their chores without whining.
您可以使用负片检查**
是否已存在:
重新导入
s='不得-**不得**-必须-**必须**'
re.sub(r’(?您可以使用负片检查**
是否已经存在:
重新导入
s='不得-**不得**-必须-**必须**'
re.sub(r'(?你的问题到底是什么?这类任务有很多解决方案,但我不理解这个问题。你有麻烦吗?因为必须是不得的子字符串,这可能导致类似**必须**不
?安德烈亚斯:是的,你的问题是什么这类任务有很多解决方案,但我不明白问题所在。你有麻烦吗,因为必须是必须不的子字符串,这可能导致类似**必须**不?@Andreas:是的,而且是*****必须**不**
哦,这是一个好的,谢谢。我想添加一行代码来获得ri在应用您的前一个***
之前,请先删除上一个***
的d。哦,这是一个好的,谢谢。在应用您的前一个***
之前,我会添加一个一行程序来删除上一个***
。
sentence.replace('MUST NOT', '**MUST NOT**').replace(' MUST', ' **MUST**')
# Children **MUST** do their homework and **MUST NOT** use their phones during that time. They **MUST** do their chores without whining.