整串=

Section 1.1 Some String.........................10

Section 1.2 Some Other String...................11

我只想拿出一些线条.<某些字符串可能包含A-Za-z0-9、一些非单词字符(例如()-,&),也可能包含圆点.但点数将不到3个.

我正在试r'Section 1.1 \[A-Za-z0-9,.()&\\s\]\[.\]+\\d+$',但它会给我全部的钱.

我在想一种方法来增加对点出现的限制,比如r'Section 1.1 \[A-Za-z0-9,.**{,3}**()&\\s\]\[.\]+\\d+$'点,但它不起作用.

有谁知道这件事吗?

推荐答案

看看您try 的模式和示例字符串,我认为它应该以匹配点后跟数字结束.

在这种情况下,您可以使用捕获组:

\bSection 1\.1\s+([^.]+(?:\.[^.]+){0,3})\.+\d+$

Explanation

  • \bSection 1\.1匹配单词Section,然后匹配1.1
  • \s+个匹配1+空格字符
  • ( Capture group 1
    • [^.]+个匹配1+个字符,而不是.
    • (?:\.[^.]+){0,3}重复0-3次匹配.,后跟1+个字符而不是.
  • )关闭第一组
  • \.+\d+匹配1+点和1+数字(使用\.*匹配可选点)
  • $字符串尾

Python demo.com/r/FuQbe3/1" rel="nofollow noreferrer">Regex demo|Python demo

返回捕获组1值的re.findall的示例:

import re

pattern = r"\bSection 1\.1\s+([^.]+(?:\.[^.]+){0,3})\.+\d+$"

s = ("Section 1.1 Some String.........................10\n"
    "Section 1.2 Some Other String...................11\n"
    "Section 1.1 I want to catch Som.e Str.i.ng..9\n"
    "Section 1.1 I want to catch Som.e..9\n"
    "Section 1.1 I want to catch Som.e Str.i.ng9\n"
    "Section 1.1 but not So.m.e Str.i.ng.9")
    
print(re.findall(pattern, s, re.M))

输出

['Some String', 'I want to catch Som.e Str.i.ng', 'I want to catch Som.e']

Python相关问答推荐

为什么我的主页不会重定向到详细视图(Django)

已安装' owiener ' Python模块,但在导入过程中始终没有名为owiener的模块

Python中的锁定类和线程以实现dict移动

如何使用scikit-learn Python库中的Agglomerative集群算法以及集群中声明的对象数量?

Tkinter -控制调色板的位置

如何使用PyTest根据self 模拟具有副作用的属性

如何在矩阵上并行化简单循环?

使用mySQL的SQlalchemy过滤重叠时间段

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

追溯(最近最后一次调用):文件C:\Users\Diplom/PycharmProject\Yolo01\Roboflow-4.py,第4行,在模块导入roboflow中

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

如何在python polars中停止otherate(),当使用when()表达式时?

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

在Python中,从给定范围内的数组中提取索引组列表的更有效方法

joblib:无法从父目录的另一个子文件夹加载转储模型

如何在Python中获取`Genericums`超级类型?

如何在Pyplot表中舍入值

处理具有多个独立头的CSV文件

为什么t sns.barplot图例不显示所有值?'