python - 查找文本的正则表达式
问题描述
我想得到My Text Content
紧随其后的那个AB.00.000
。
我可以AB.00.000
通过使用下面的正则表达式来得到这个,
([A-Z]{2,3}\.[0-9]{2}\.[0-9]{3})
如何AB.00.000
在 Python 中获取文本旁边的文本?
这是输入字符串:
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
option)^
匹配一行的开始,而不仅仅是整个字符串的开始位置。
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)
。
推荐阅读
- go - 如何使用 go-kit 将请求标头作为响应标头发送
- sql - 无法使用空值连接两个几乎相同的表
- laravel - 为什么第一方客户端无法处理 Laravel Passport 上的“authorization_code”授权类型
- python - 通过用户输入在元组中打印出每次都不同的输出
- java - 如何从Java中的Pair和Object的映射中获取值
- ruby-on-rails - 表单提交 React 和 Rails
- javascript - 在 Vue.js 的匿名组件中包装接收到的插槽(vnodes)
- ajax - HTTP 重定向 (302) 在 ajax 调用期间如何工作
- css - 如何在材质 UI 选择/菜单项组件中将文本换行到下一行?(CSS问题)
- android - Firebase Auth - GetTokenResult.getExpirationTimestamp 在内部抛出 ClassCastException