在python字符串中提取匹配的子字符串

2024-09-30 05:20:23 发布

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

我试图从一个与我的模式匹配的大字符串中提取一个子字符串

text = 'This is a large subsring. bla bla bla AND www.dumbweb.com/Dumbo and www.otherLinks.com...'

pattern = 'dumbweb.com'

在这里,我试图找到与pattern匹配的字符串

theLink = re.findall(pattern, text)
print(theLink)  //output: dumbweb.com

但是我只能找到我正在搜索的确切文本,我试图用空格分割整个字符串

期望输出:

theLink //www.dumbweb.com/Dumbo

我已经厌倦了寻找类似的问题,但我无法正确表达它,我甚至查找了Python正则表达式,仍然无法实现我所寻找的


Tags: and字符串textcomiswwwthispattern
3条回答

试试这个:

re.search('dumbweb.com[\S]*', text).group() 
# matches your string followed by any character but white space 

你可以试试这个:

[^ ]*dumbweb\.com[^ ]*

注意,在正则表达式中.匹配任何字符。您需要使用\.来只匹配一个文字句点

你可以考虑这样的方法:

import re
text = 'This is a large subsring. bla bla bla AND www.dumbweb.com/Dumbo and www.otherLinks.com...'
pattern = 'dumbweb.com'

rex = re.compile(r'\b' + r'\S*' + re.escape(pattern) + r'\S*')
print (rex.findall(text))

输出:

['dumbweb.com/Dumbo']

说明:

  • re.compile(...):编译给定的字符串正则表达式模式
  • r'\b':单词边界
  • r'\S*':匹配0个或多个非空白字符
  • re.escape(pattern):对给定字符串执行正则表达式转义
  • r'\S*':匹配0个或多个非空白字符

相关问题 更多 >

    热门问题