繁体   English   中英

用于查找文本的正则表达式

[英]Regular expression for find the text

我想获得紧跟在AB.00.000My Text Content

我可以通过使用下面的正则表达式得到这个AB.00.000

([A-Z]{2,3}\.[0-9]{2}\.[0-9]{3})

如何在 Python 中获取AB.00.000旁边的文本?

这是输入字符串:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard 

AB.00.000 My Text Content

$!#"!

23:50

My Phone

在找到您的模式后,您似乎想获得该行的其余部分。

您可以使用

r'\b[A-Z]{2,3}\.[0-9]{2}\.[0-9]{3}\b\s*(.*)'

请参阅正则表达式演示 请注意, \\b是一个单词边界,它需要在单词 char(或字符串的开头/结尾)之前或之后的字母/数字/ _以外的字符。 \\s*(.*)是您的解决方案严重缺失的内容:

  • \\s* - 0+ 个空格
  • (.*) - 捕获组 #1:除换行符以外的任何 0 个或更多字符,尽可能多,即行的其余部分。

如果模式必须位于一行的开头,则提取所需文本的正则表达式方式将如下所示

r'(?m)^[A-Z]{2,3}\.[0-9]{2}\.[0-9]{3}\b\s*(.*)'

请参阅另一个正则表达式演示 (?m) (= re.M选项) 使^匹配一行的开始,而不仅仅是整个字符串的开始,位置。

Python:

m = re.search(r'\b[A-Z]{2,3}\.[0-9]{2}\.[0-9]{3}\b\s*(.*)')
if m:
    print(m.group(1))

请注意,要访问匹配的第一个(也是唯一的)括号部分,您需要通过.group(1)访问匹配组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM