【问题标题】:Matching an string to regular expression when both the string and the regular expression has re reserved characters当字符串和正则表达式都具有重新保留字符时,将字符串与正则表达式匹配
【发布时间】:2020-05-30 03:35:04
【问题描述】:

我有一组可能与某个模板匹配或不匹配的字符串。 我想将与模板匹配的字符串与其他字符串分开。 我可以将模板转换为正则表达式。 但是我的模板(最终转换为正则表达式)和字符串可能具有正则表达式保留字符。 在这种情况下,如何将字符串与模板匹配。

例如:

字符串:

  • abc[ere er\sfdf asdf.
  • def[ere we\sfdf asdf.
  • ghi[ere qs\sfdf asdf.

模板:

(anything)[ ere (anything) \ sfdf asdf.

我使用的正则表达式:

.+ ere .+ \ sfdf asdf.

但这不会输出所有 3 个字符串都与模板匹配。

【问题讨论】:

  • 我尝试使用反引号和<pre> 格式化您的代码。如果我搞砸了,请进行编辑以修复或回滚(但我建议使用固定宽度,否则很难阅读)。
  • 尝试.+? 让您的捕获不贪婪。大概(任何东西)不包括空格?
  • (任何东西)也可以包含空间。
  • 尝试双重转义反斜杠\\并转义点\.

标签: python regex


【解决方案1】:

根据输入的字符串和模板,请您试试:

r'^.+?\[ ere .+? \\ sfdf asdf\.$'

【讨论】:

  • 答案非常适合您的问题。 r"^.+?\[\sere\s.+?\s\\\ssfdf\sasdf\.$"这里只是一点点修改,最好使用'\s'作为空格,因为这样可以确保你只提供一个空格。
猜你喜欢
  • 2022-01-17
  • 1970-01-01
  • 2012-06-05
  • 2013-12-25
  • 1970-01-01
相关资源
最近更新 更多