当前位置: 首页 > 知识库问答 >
问题:

搜索并替换大写字符串中的字符

穆城
2023-03-14

我有一个巨大的文本文件,其中包含许多小写字符与大写字符混合的拼写错误,但仅包含字母“l”(小写L)并且仅包含大写单词,形式如下:

VERONlCA, SPEAKlNG, lMITATlON, ENGLlSH

因此,我想仅替换大写单词中的所有字符“l”(小写字母l)(因为有许多小写单词通常也包含小写字母“l”),其中前一个字符是大写的,相邻字符也是大写的。类似[A-Z][l][A-Z],用大写字母“I”替换小写字母“l”(如MIKE),但保持大写单词的其余部分不变,并且不影响文档其余部分的小写字符串(因此“想象”不会变成“想象”)。

我使用的是“查找和替换”框,那么我应该在查找框中键入什么,在“替换”框中键入什么?

共有3个答案

於鸿羲
2023-03-14

如果你想处理前导和尾随l,你可以这样做:

查找:\b(?:([A-Z])l([A-Z])|l([A-Z])|[A-Z]l)\b
替换:\U0美元

柴飞扬
2023-03-14

我发现无论您使用什么软件来搜索和替换,都必须检查“匹配案例”。

首先,我最终使用了两个正则表达式命令:

发现

([A-Z])l([A-Z]+) 

用…替换

$1I$2

使用这个选项,您可以确保只对大写单词执行更改,小写单词将完全被忽略,因为[A-Z]将确保小写L旁边的连续字符都是大写的,如果没有这个选项,它也将匹配小写单词。

(l)([A-Z]+) 

用…替换

I$2

以确保它将匹配以小写L开头的单词。

我确信有一种方法可以将这两个命令合二为一,但我不知道。

唐骏祥
2023-03-14

([A-Z]| \b)l([A-Z])替换为\1L\2。斜杠引用组。

也可能是$1L$2,具体取决于程序。

 类似资料:
  • 问题 你需要以忽略大小写的方式搜索与替换文本字符串 解决方案 为了在文本操作时忽略大小写,你需要在使用 re 模块的时候给这些操作提供 re.IGNORECASE 标志参数。比如: >>> text = 'UPPER PYTHON, lower python, Mixed Python' >>> re.findall('python', text, flags=re.IGNORECASE) ['P

  • 问题 你想在字符串中搜索和匹配指定的文本模式 解决方案 对于简单的字面模式,直接使用 str.replace() 方法即可,比如: >>> text = 'yeah, but no, but yeah, but no, but yeah' >>> text.replace('yeah', 'yep') 'yep, but no, but yep, but no, but yep' >>> 对于复杂

  • 我有一个列的数据,如下所示 我需要搜索包含“FCL”的字符串,并替换没有FCL的单词。例如,保险费用-FCL到保险费用,即我不需要字符串FCL。

  • 问题内容: 如何以 不区分大小写的 方式在文件中搜索单词? 例如 如果我正在文件中搜索,如果文件包含更新,则搜索应将其选中并将其视为匹配项。 问题答案: 可以在忽略大小写的情况下检查两个字符串是否相等。它甚至可以与Unicode一起使用。有关更多信息,请参见http://golang.org/pkg/strings/#EqualFold。 http://play.golang.org/p/KDdI

  • 问题内容: 说我有一个看起来像这样的字符串: 您会注意到字符串中有很多与符号的位置,后跟一个字符(例如“&y”和“&c”)。我需要用字典中的适当值替换这些字符,如下所示: 最快的方法是什么?我可以手动找到所有“&”号,然后遍历字典以更改它们,但这似乎很慢。进行一堆正则表达式替换似乎也很慢(我的实际代码中将有大约30-40对字典)。 任何建议表示赞赏,谢谢。 编辑: 正如在该问题的注释中所指出的那样

  • 问题内容: 我需要不区分大小写地突出显示JavaScript字符串中的给定关键字。 例如: 应该回来 我需要用于任何关键字的代码,因此使用像硬编码的正则表达式这样的解决方案还不够。 最简单的方法是什么? (这是标题中详述的更一般问题的实例,但我认为最好用一个具体,有用的示例来解决。) 问题答案: 你 可以 ,如果你准备搜索字符串使用正则表达式。在PHP中,例如有一个函数preg_quote,它用转