【问题标题】:Do not consider white spaces and quotes using regular expressions不要考虑使用正则表达式的空格和引号
【发布时间】:2012-12-05 11:52:26
【问题描述】:

我有以下字符串:

Values: Fail.123/urs/temp/lib.000

我需要创建一个不考虑空格和“”的正则表达式。而且它也不应该区分大小写。 如果我将通过上面的字符串(Values: Fail.123/urs/temp/lib.000)。它还将显示以下字符串:

value:Fail.123/urs/temp/lib.000 
Value:fail.123  /urs/temp/Lib.000
value:"fail.123 /urs/temp/Lib.000

【问题讨论】:

  • 如何清除空格和引号的字符串,然后用ignorecase匹配?
  • 只需用 re.sub(r"^\s+", "") 删除多余的空间,但这不是正确的方法..它不适用于其他字符串
  • 您要忽略{}(大括号)还是"(引号)?
  • 我想忽略“(引号)
  • 你能给我们一个示例字符串并解释你希望你的正则表达式匹配什么,什么不匹配。也就是说,给我们您的输入和您想要的输出。

标签: python regex python-2.6


【解决方案1】:

以下正则表达式将忽略空格和"(引号):

[^\s"]*

PS:我使用 .NET 正则表达式对此进行了测试,但它应该适用于 python

【讨论】:

  • 我正在使用这个正则表达式 b = re.sub(r'[(\s")*]','[\s]*',a) 但仍然没有得到答案跨度>
  • 不客气,Surya,如果它有效,那么您可以投票给我的答案和/或将其标记为答案
【解决方案2】:

以下内容应该可以让您了解:

In [76]: cmpkey = lambda s:re.sub(r'[\s"]', '', s).lower()

In [77]: cmpkey('Values: Fail.123/urs/temp/lib.000') == key('values:"fail.123 /urs/temp/Lib.000')
Out[77]: True

附:我刚刚注意到,在您的示例中,“值”与“值”可以互换使用。这是为什么呢?

【讨论】:

  • 它为你工作,但从数据库中检索数据它没有显示任何行
猜你喜欢
  • 2014-03-07
  • 1970-01-01
  • 2019-10-14
  • 2020-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多