Python如何在字符串中查找子字符串并打印包含该子字符串的整个字符串

时间:2019-11-28 15:52:17

标签: python string

我正在努力寻找解决方案,以打印包含特定子字符串的字符串。所以例如我有一个字符串

mystr = "<tag> name = mon_this_is_monday value = 10 </tag>"

我想在上面的字符串中搜索"mon"并打印"mon_this_is_monday",但不确定如何做

我尝试做

    pattern = re.compile('mon_')
    try:
        match = re.search(pattern, mystr).group(0)
        print(match)
    except AttributeError:
        print('No match')

但这只是给出mon_作为匹配的输出。如何获得整个字符串"mon_this_is_monday"作为输出?

3 个答案:

答案 0 :(得分:3)

我们可以尝试将re.findall与模式\b\w*mon\w*\b一起使用:

mystr = "<tag> name = mon_this_is_monday value = 10 </tag>"
matches = re.findall(r'\b\w*mon\w*\b', mystr)
print(matches)

此打印:

['mon_this_is_monday']

正则表达式模式匹配:

\b   a word boundary (i.e. the start of the word)
\w*  zero or more word characters (letters, numbers, or underscore)
mon  the literal text 'mon'
\w*  zero or more word characters, again
\b   another word boundary (the end of the word)

答案 1 :(得分:2)

:host::before { content: attr(data-content); ...

答案 2 :(得分:0)

您还可以在正则表达式上进行搜索

import re


mystr = "<tag> name = mon_this_is_monday value = 10 </tag>"

abc = re.search(r"\b(\w*mon\w*)\b",mystr)

print(abc.group(0))