当前位置: 首页 > 面试题库 >

不区分大小写的正则表达式,无需重新编译?

姬庆
2023-03-14
问题内容

在Python中,我可以使用re.compile以下命令将正则表达式编译为不区分大小写:

>>> s = 'TeSt'
>>> casesensitive = re.compile('test')
>>> ignorecase = re.compile('test', re.IGNORECASE)
>>> 
>>> print casesensitive.match(s)
None
>>> print ignorecase.match(s)
<_sre.SRE_Match object at 0x02F0B608>

有没有办法做同样的事情,但是不用re.compile。在文档中找不到Perl的i后缀(例如m/test/i)。


问题答案:

传递re.IGNORECASEflags的PARAM
searchmatchsub

re.search('test', 'TeSt', re.IGNORECASE)
re.match('test', 'TeSt', re.IGNORECASE)
re.sub('test', 'xxxx', 'Testing', flags=re.IGNORECASE)


 类似资料:
  • 问题内容: 我想使用JavaScript从我的URL中提取查询字符串,并且想要对查询字符串名称进行不区分大小写的比较。这是我在做什么: 但是上面的代码进行区分大小写的搜索。我尝试过,但没有帮助。知道如何实现吗? 问题答案: 您可以添加“ i”修饰词,表示“忽略大小写”

  • 问题内容: 我正在尝试使用以下程序使用正则表达式删除字符串中的某些单词。它可以正确删除,但只考虑大小写。如何使其不区分大小写。我坚持使用方法,但是没有用。 输出: 问题答案: 您需要将模式中要区分大小写的部分放在 前面 : 看见 我已将要删除的关键字周围的空格替换为单词边界()。之所以出现问题,是因为可能有两个关键字一个接一个地被一个空格隔开。 如果仅当关键字被 空格 包围时才想删除它们,则可以使

  • 我需要查找以三个小写字母开头的文件,但由于某种原因,我遇到了不希望的不区分大小写的行为。我正在使用带有 -regex 选项的查找,但它甚至可以找到以大写字母开头的文件。 打印内容与以下内容相同: 如果我不使用一系列字符,而是使用一个字符,则工作方式与敏感字符相同,只打印小写文件。 我尝试过使用不同的正则表达式类型,结果是相同的。 此外,白鹭似乎也起作用: 为什么在使用字符范围时“find-rege

  • 问题内容: 现在,当然,我可以编写正则表达式来处理这两种情况,例如,但是我的正则表达式是由用户提供的字符串构造的: 名字在哪里。可能类似于“西北偏北”。现在,对我来说,最明显的解决方案是遍历每个字符,并为每个字母写“ [nN]”: 但是我觉得这是一个不太优雅的解决方案。速度并不是真正的问题,但是我需要知道是否还有另一种方法。 问题答案: 您可以将不区分大小写的标志设置为正则表达式中的第一项。 您可

  • 我已经查看了此链接和此链接以及其他几个链接,但它们似乎都无法仅使用纯正则表达式解决此问题(...不使用替换等)。 输入字符串: 我想要的输出是:< code>[“车辆服务”、“自动加油机”] 这是我的尝试: ['车辆服务','自动加油机'] 我有一个下面的解决方案,但我不喜欢它,因为它使用了一个额外的“替换”方法。我正在寻找一个纯正则表达式的拆分。 ['车辆服务','自动加气机'] 更新:我的要求

  • 问题内容: 所以我有一个像 2000cc车辆翻新发动机 我想把它变成 2000CC车辆翻新发动机 资本CC于2000CC。我显然不能这样做,因为它将所有出现的cc都替换为大写版本,因此加速器一词将成为加速器。在我的情况下,前四位将始终是四位,后跟字母cc,因此我认为可以使用正则表达式来完成。 我的问题是,在Java中,当cc跟随4位数字时如何将cc转换为CC并获得我期望的结果? 问题答案: 如果只