Regex 通过正则表达式从文件中获取路径

Regex 通过正则表达式从文件中获取路径,regex,Regex,我想写一个正则表达式从路径中获取as路径信息 输入行将是: as path: 1 2 3 4.5 6 i (test) 我希望得到:['1','2','3','4.5','6','I'] 我用Python编写了正则表达式: re.findall(r'\b\d*[\.]?\d*\b|\bi\b', line) 但是我没有得到我期望的结果。我的正则表达式怎么了?谢谢大家! 由于第一个备选方案中的所有模式都可以匹配空字符串(?和*可能匹配0个字符),因此第一个备选方案,\b\d*[\.]?\d*\

我想写一个正则表达式从路径中获取as路径信息

输入行将是:

as path: 1 2 3 4.5 6 i (test)
我希望得到:
['1','2','3','4.5','6','I']

我用Python编写了正则表达式:

re.findall(r'\b\d*[\.]?\d*\b|\bi\b', line)

但是我没有得到我期望的结果。我的正则表达式怎么了?谢谢大家!

由于第一个备选方案中的所有模式都可以匹配空字符串(
*
可能匹配0个字符),因此第一个备选方案,
\b\d*[\.]?\d*\b
实际上匹配任何单词边界位置

您需要使其至少匹配1位,因此以下各项应按预期工作:

re.findall(r'\b(?:\d+(?:\.\d+)?|i)\b', line)

详细信息

  • \b
    -单词边界
  • (?:
    )-两种备选方案之一:
    • \d+
      -1+位
    • (?:\。\d+)
      -可选的
      和1+数字序列
  • |
    -或
    • i
      -一个
      i
      子字符串
  • -备选组结束
  • \b
    -单词边界

请用一些真实的例子解释更多。请尝试
re.findall(r'\b(?:\d+(?:\。\d+)?\124; i)\b',行)