Python 正则表达式获取文本左对齐
我是新加入Regex世界的,我浏览过很多网站,却没有找到我想要的。 我有一个文件,需要在那里取地址。地址在纸的左边对齐(右边同一行有文本)Python 正则表达式获取文本左对齐,python,regex,Python,Regex,我是新加入Regex世界的,我浏览过很多网站,却没有找到我想要的。 我有一个文件,需要在那里取地址。地址在纸的左边对齐(右边同一行有文本) 关于多行的一些信息(6) 我不需要也不能粘贴,因为 它包含一些个人信息。 想象一下这里有很多文字。。。 想象一下这里有很多文字。。。 想象一下这里有很多文字。。。 卖给比尔 一些Cie一些其他Cie 化学某条路1111化学某条路2222化学某条路 此处城市QC J0Q 1W0此处其他城市QC J0Q 1W0 加拿大 我需要在“销售对象”侧获取文本。 我试图
关于多行的一些信息(6)
我不需要也不能粘贴,因为
它包含一些个人信息。
想象一下这里有很多文字。。。
想象一下这里有很多文字。。。
想象一下这里有很多文字。。。
卖给比尔
一些Cie一些其他Cie
化学某条路1111化学某条路2222化学某条路
此处城市QC J0Q 1W0此处其他城市QC J0Q 1W0
加拿大
我需要在“销售对象”侧获取文本。
我试图使用\r,但它没有返回任何结果!
我不知道如何从行的开头提取文本,直到有一堆空格。
例如:一些Cie(如果超过1个空格,请转到下一行)
然后我有:salled\sTo(?=\s{2100})
但是当(?=\s{2100})返回所有内容时,它不会工作
我看到:^((?:\S+\S+{2}\S+).
,这与我想要的非常接近,但我不了解全部内容。我想匹配2到5个单词
然后我有:^([A-Za-z0-9-]*)(?=\s{2100})
,我认为这会在行的开头匹配,直到有2个以上的空格。
我做错了什么
我需要在纯正则表达式中执行此操作(不允许使用标志)
我完全迷路了。如果您能提供一些指导,我们将不胜感激。您的最后一次尝试已接近尾声。以下是我的想法:
^.+?(?=[^\S\n]{2,})
说明:
+
-一个或多个字符
?
-非贪婪,为下一部分提供优先级,即避免匹配一堆空格
[^\S\n]
-除换行符以外的任何空白字符(这类似于\S
减去\n
)
{2,}
-两个或更多
与示例中的匹配:
出售给
一些Cie
chemin some路1111号
此处城市QC J0Q 1W0
加拿大
Python中的简单示例:
import re
pattern = re.compile(r'^.+?(?=[^\S\n]{2,})')
with open(filename) as f:
for line in f:
m = pattern.match(line)
if m:
print(m.group())
它正在工作,但只有在启用“全局”和“多行”标记时才起作用。有没有一种方法可以让它在没有具体说明的情况下工作?我使用的工具不允许我指定任何启用了flagsI found out(m?)的多行。现在我很确定问题来自我的工具。谢谢@mrinfo Global在Python中不是真正的标志。相反,您使用不同的函数,如re.search
vsre.findall
。Regex101只是为了方便而使用它。同样,如果在行上迭代,则不需要多行。我发布了一个简单的示例。事实上,这是因为我使用的工具使用python,我无法编写自己的python方法,只能在yml文件中编写正则表达式。老实说,这有点奇怪。。。当我使用我的真实文件时,它获取的行太多,我认为需要在其中添加一些分隔符