繁体   English   中英

正则表达式匹配一个单词和之后的一切?

[英]regex to match a word and everything after it?

我需要将一些http数据作为一个字符串从一个字符串格式的字符串中转储,我试图使用下面的正则表达式来匹配'data:'以及它之后的所有内容,它不起作用。 我是regex和python的新手

>>>import re
>>>pat=re.compile(r'(?:/bdata:/b)?\w$')
>>>string=" dnfhndkn data: ndknfdjoj pop"
>>>res=re.match(pat,string)
>>>print res
   None

re.match仅匹配字符串的开头。 使用re.search匹配任何位置。 (参见search() vs. match()

>>> import re
>>> pat = re.compile(r'(?:/bdata:/b)?\w$')
>>> string = " dnfhndkn data: ndknfdjoj pop"
>>> res = re.search(pat,string)
>>> res
<_sre.SRE_Match object at 0x0000000002838100>
>>> res.group()
'p'

要匹配所有内容,您需要使用.*更改\\w 同时删除/b

>>> import re
>>> pat = re.compile(r'(?:data:).*$')
>>> string = " dnfhndkn data: ndknfdjoj pop"
>>> res = re.search(pat,string)
>>> print res.group()
data: ndknfdjoj pop

这里不需要正则表达式。 你可以切片:

>>> string
' dnfhndkn data: ndknfdjoj pop'
>>> string.index('data')
10
>>> string[string.index('data'):]
'data: ndknfdjoj pop'

str.index('data')返回字符串中找到子字符串data点。 从此位置到结束string[10:]的切片为您提供了您感兴趣的字符串部分。

顺便说一句,如果您计划在任何时候使用string模块string是一个可能有问题的变量名称...

你可以这样做:

string.split("data:")[1]

假设“data:”在每个字符串中只出现一次

暂无
暂无

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

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