正则表达式:查找tex中的所有子字符串

2024-10-01 11:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一段很长的文字,这是他们的一部分

C: state name of the Company in Russian: [03_SNYuLOOO IC "Story Group".]
). - [04_MNMestablishment of the Company: 107S64, Russian Federation, Moscow, 
ul. Krasnobogatyrskaya, 2, is built.
2, floor 3. com. 11. Office B].

我需要像这样找到所有子字符串:

[03_SNYuLOOO IC "Story Group".]
[04_MNMestablishment of the Company: 107S64, Russian Federation, Moscow, 
ul. Krasnobogatyrskaya, 2, is built.
2, floor 3. com. 11. Office B]

我试着用

re.findall(r'^\[\d{2}_[\s\S]+\]$', text)

但它返回空列表。 我做错什么了?你知道吗


Tags: oftheisgroupulcompanyicstory
1条回答
网友
1楼 · 发布于 2024-10-01 11:33:50

^$锚定要求整个字符串与模式匹配,并且[\s\S]+尽可能多地匹配任何1+字符,在到达字符串末尾的途中抓住任何[],因此最后的]将与字符串中最右边的]匹配。你知道吗

您可以使用以下正则表达式:

r'\[\d{2}_[^]]+]'

参见regex demo

细节

  • \[-文字[
  • \d{2}-两位数
  • _-下划线
  • [^]]+-除]之外的一个或多个字符
  • ]-一个文本]。你知道吗

参见Python demo

import re
s='''C: state name of the Company in Russian: [03_SNYuLOOO IC "Story Group".]
). - [04_MNMestablishment of the Company: 107S64, Russian Federation, Moscow, 
ul. Krasnobogatyrskaya, 2, is built.
2, floor 3. com. 11. Office B].'''
print(re.findall(r'\[\d{2}_[^]]+]', s))
# => ['[03_SNYuLOOO IC "Story Group".]', '[04_MNMestablishment of the Company: 107S64, Russian Federation, Moscow, \nul. Krasnobogatyrskaya, 2, is built.\n2, floor 3. com. 11. Office B]']

相关问题 更多 >