0

我们有一个具有特定大小写的首字母缩写词。企业现在希望我们找到所有出现的套管错误并修复它。

正确大小写示例:HtMl
搜索操作将需要返回所有出现的 HTML、html、Html、HtML 等。然后我可以手动检查每个案例,看看它是否真的是我们的首字母缩略词。

我在想Regular Expressions,但我不确定如何写一个排除正确案例的方法。类似的东西:\b((H|h)(T|t)(M|m)(L|l))&(~HTML)\b。只有&asAND不存在(或存在?)。

4

2 回答 2

1

您可以将文本转换为小写,然后在小写文本中查找出现的单词(也小写)。现在,无论您在小写版本中找到它的任何位置,都将其替换为原始文本。

但是现在我想了想,使用正则表达式简单得多。这里没有太多要添加的内容,但是如果您有很多这样的替换要做,这里有一个 Python 小脚本,它应该为您生成(并应用)这些正则表达式。

import re
def replaceAllVariants(acronym, text):
    regex = "".join("[%s%s]" % (c.lower(), c.upper()) for c in acronym)
    return re.sub(regex, acronym, text)
# usage
text = replaceAllVariants("HTML", "Bla bla html HTML HtMl hTMl foo bar.")
于 2012-09-05T15:01:27.213 回答
1

使用 bash 脚本解决:

echo "Hello, I'm not HtmL, HTML or html, but not HtMl." | grep -o "[H|h][T|t][M|m][L|l]" | grep -v "HtMl"

“异常”在“grep -v”部分。

于 2012-09-05T15:52:12.923 回答