【发布时间】:2014-12-26 13:52:59
【问题描述】:
假设我想编写一个正则表达式来将单词 Dog 替换为单词 Cat。
例如
Dogs are scary.
会变成:
Cats are scary.
但我希望仅当单词 Dog 不在引号内时才应用此正则表达式。
例如
Dogs are scary but my mom told me that "Dogs are cute"
会变成:
Cats are scary but my mom told me that "Dogs are cute"
我不知道该怎么做。 请帮帮我:)
【问题讨论】:
-
您使用哪种语言?
-
在这个具体的例子中,我使用了 php,但我认为这无关紧要。
-
当然这是相关的。不同语言中使用的正则表达式的风格是不同的。某些语言不支持某些功能,例如向后看
-
regex不是最适合这项工作的工具。它可以做到,但对应的regex很复杂,并且包含并非所有可以处理regex的语言都支持的功能。我将分两步进行:首先将文本拆分为是否包含在引号中(regex可以这样做),然后使用简单的字符串替换功能仅在未包含在引号中的部分中进行更改。