假设我在下面的变量中有字符串:
text='lsdkjfkj fksjf aksjdafhIncident 11202asdf jfsaldfuaeia'
我只想选择文字Incident 11202
并将其保存到变量中。
此外,“突发事件”后面的数字也会发生变化。
我想知道是否有办法复制其后的任何未知字符。
答案 0 :(得分:4)
你可以使用正则表达式。
尝试使用以下正则表达式:
import re
txt='lsdkjfkj fksjf aksjdafhIncident 11202asdf jfsaldfuaei2a'
print (re.findall ('Incident.\d*', txt))
>>>['Incident 11202']
什么是正则表达式?
正则表达式(简称regex或regexp)是用于描述搜索模式的特殊文本字符串
什么是findAll功能?
re.findall(pattern,string,flags = 0)
返回所有不重叠的内容 字符串中的模式匹配,作为字符串列表。字符串是 从左到右扫描,并按找到的顺序返回匹配。如果 模式中存在一个或多个组,返回列表 组;如果模式有多个,这将是一个元组列表 组。结果中包含空匹配,除非他们触摸了 另一场比赛的开始。
您可以在here
中阅读更多内容答案 1 :(得分:2)
正如其他人所说,你需要正则表达式。这是您需要的代码,下面有一个解释:
import re
the_regex = re.compile(r'(Incident\s+\d+)')
string_to_search_in = 'lsdkjfkj fksjf aksjdafhIncident 11202asdf jfsaldfuaei2a'
matches = re.findall(the_regex, string_to_search_in)
print(matches)
Output: ['Incident 11202']
以下是代码的一步一步:
the_regex
变量。我写的正则表达式将匹配以“Incident”开头的任何内容,然后是任意数量的连续空格(空格,制表符等),然后是任意数量的连续数字。该行的re.compile
部分编译正则表达式以便更有效地使用re.findall
将(毫不奇怪)找到所有匹配到正则表达式并将其作为字符串返回列表<强>的正则表达式强>
是一个有用的工具,可帮助您查找字符串或文件中的字符序列。 Here是re的python 3.6.1文档。 Here是正则表达式的维基百科页面。