python 搜索用户名
python search the user name
Mon Apr 27 18:12:54 '<rdpDirect> ITC9975@win_itsskdcbkp2_10.18.2.104
Mon Apr 27 18:14:31 '<rdpDirect> JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172
Mon Apr 27 18:14:32 '<rdpDirect> JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172
Mon Apr 27 18:24:21 '<rdpDirect> SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147
Mon Apr 27 18:24:21 '<rdpDirect> SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147
从上面的文本中,需要搜索“\”和“@”符号之间提到的用户名。这可以是数字、字符或字母数字。
例如:在上面的例子中,109975、VINOTHKUMAR、UITSMUSR 等
一个简单的正则表达式就可以完成这项工作。你可以试试\(.*?)\@
。
此 "captures" 文本介于 \
和 @
之间
搜索 \
和 @
个字符内包含零个或多个字符的组。
import re
data = "Mon Apr 27 18:12:54 ' ITC\109975@win_itsskdcbkp2_10.18.2.104 Mon Apr 27 18:14:31 ' JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172 Mon Apr 27 18:14:32 ' JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172 Mon Apr 27 18:24:21 ' SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147 Mon Apr 27 18:24:21 ' SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147"
usernames = re.findall(r"\(.*?)@", data)
print(usernames)
输出:
['109975', 'VINOTHKUMAR', 'VINOTHKUMAR', 'UITSMUSR', 'UITSMUSR']
re.findall()
方法 returns 搜索字符串的非重叠出现列表。更多可以阅读in the official documentation of findall method.
buffer = '''
Mon Apr 27 18:12:54 ' ITC\19975@win_itsskdcbkp2_10.18.2.104 Mon Apr 27 18:14:31 ' JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172 Mon Apr 27 18:14:32 ' JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172 Mon Apr 27 18:24:21 ' SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147 Mon Apr 27 18:24:21 ' SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147'''
import re
print(re.findall('\\([\d\w\W]+?)@', buffer))
['19975', 'VINOTHKUMAR', 'VINOTHKUMAR', 'UITSMUSR', 'UITSMUSR']
Mon Apr 27 18:12:54 '<rdpDirect> ITC9975@win_itsskdcbkp2_10.18.2.104
Mon Apr 27 18:14:31 '<rdpDirect> JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172
Mon Apr 27 18:14:32 '<rdpDirect> JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172
Mon Apr 27 18:24:21 '<rdpDirect> SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147
Mon Apr 27 18:24:21 '<rdpDirect> SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147
从上面的文本中,需要搜索“\”和“@”符号之间提到的用户名。这可以是数字、字符或字母数字。
例如:在上面的例子中,109975、VINOTHKUMAR、UITSMUSR 等
一个简单的正则表达式就可以完成这项工作。你可以试试\(.*?)\@
。
此 "captures" 文本介于 \
和 @
搜索 \
和 @
个字符内包含零个或多个字符的组。
import re
data = "Mon Apr 27 18:12:54 ' ITC\109975@win_itsskdcbkp2_10.18.2.104 Mon Apr 27 18:14:31 ' JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172 Mon Apr 27 18:14:32 ' JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172 Mon Apr 27 18:24:21 ' SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147 Mon Apr 27 18:24:21 ' SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147"
usernames = re.findall(r"\(.*?)@", data)
print(usernames)
输出:
['109975', 'VINOTHKUMAR', 'VINOTHKUMAR', 'UITSMUSR', 'UITSMUSR']
re.findall()
方法 returns 搜索字符串的非重叠出现列表。更多可以阅读in the official documentation of findall method.
buffer = '''
Mon Apr 27 18:12:54 ' ITC\19975@win_itsskdcbkp2_10.18.2.104 Mon Apr 27 18:14:31 ' JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172 Mon Apr 27 18:14:32 ' JDAWMSAPPDEV\VINOTHKUMAR@win_jdawmsappdev_10.10.45.172 Mon Apr 27 18:24:21 ' SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147 Mon Apr 27 18:24:21 ' SAAMARTHA\UITSMUSR@win_saamarthaad_10.10.45.147'''
import re
print(re.findall('\\([\d\w\W]+?)@', buffer))
['19975', 'VINOTHKUMAR', 'VINOTHKUMAR', 'UITSMUSR', 'UITSMUSR']