Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有通配符';%';在Python中与SQL中等效?_Python_Regex - Fatal编程技术网

是否有通配符';%';在Python中与SQL中等效?

是否有通配符';%';在Python中与SQL中等效?,python,regex,Python,Regex,我的代码通过一个不断更新的日志文件运行。我想挑出不必要的行,让代码只担心3行。唯一的问题是,这3行以一个总是在变化的时间戳开始。以下是其中一行的示例: 2020-05-19 07:25:46.768:Verbose:InvegoRFIDReaderProcessor:5:CheckSource:Truck Tag=,Reader Connected=True,Reader Address=XX.XX.XX.XX:XXXX,Last Msg Time=5/18/2020 11:51:03 AM,R

我的代码通过一个不断更新的日志文件运行。我想挑出不必要的行,让代码只担心3行。唯一的问题是,这3行以一个总是在变化的时间戳开始。以下是其中一行的示例:

2020-05-19 07:25:46.768:Verbose:InvegoRFIDReaderProcessor:5:CheckSource:Truck Tag=,Reader Connected=True,Reader Address=XX.XX.XX.XX:XXXX,Last Msg Time=5/18/2020 11:51:03 AM,Reader type=Source


我想忽略时间戳(2020-05-19 07:25:46.768:)和行尾(,Last Msg Time=5/18/2020 11:51:03 AM,ReaderType=Source),只担心行中间。是否有一种方法可以使用类似于SQL中“%”的内容将变量设置为仅等于行中间的值?

如果您将每行作为字符串读取,请尝试以下操作:

value=row[row.index(“标记”):row.index(“,Last”)]

如果您将每一行作为字符串读取,请尝试以下操作:

value=row[row.index(“标记”):row.index(“,Last”)]
您可以使用正则表达式:

重新导入
text='2020-05-19 07:25:46.768:Verbose:InvegoRFIDReaderProcessor:5:CheckSource:Truck Tag=,Reader Connected=True,Reader Address=XX.XX.XX.XX:XXXX,Last Msg Time=5/18/2020 11:51:03 AM,Reader type=Source'
打印(重新匹配(r'\d{4}-\d{2}-\d{2}\d{2}:\d{2}:\d{2}\.\d{3}(.+)\d{1,2}\/\d{2}/\d{4},文本)。组(1))
您可以使用正则表达式:

重新导入
text='2020-05-19 07:25:46.768:Verbose:InvegoRFIDReaderProcessor:5:CheckSource:Truck Tag=,Reader Connected=True,Reader Address=XX.XX.XX.XX:XXXX,Last Msg Time=5/18/2020 11:51:03 AM,Reader type=Source'
打印(重新匹配(r'\d{4}-\d{2}-\d{2}\d{2}:\d{2}:\d{2}\.\d{3}(.+)\d{1,2}\/\d{2}/\d{4},文本)。组(1))

您可以使用正则表达式获取所需内容

import re

text = '2020-05-19 07:25:46.768:Verbose: InvegoRFIDReaderProcessor:5:CheckSource:Truck Tag=, Reader Connected=True, Reader Address=XX.XX.XX.XX:XXXX, Last Msg Time=5/18/2020 11:51:03 AM, ReaderType=Source'
result = re.match(r'[\d\-\W:]+(.+),\WL', text)
print(result.group(1))

有关re的更多信息,您可以从这里获得

您可以使用正则表达式获取所需内容

import re

text = '2020-05-19 07:25:46.768:Verbose: InvegoRFIDReaderProcessor:5:CheckSource:Truck Tag=, Reader Connected=True, Reader Address=XX.XX.XX.XX:XXXX, Last Msg Time=5/18/2020 11:51:03 AM, ReaderType=Source'
result = re.match(r'[\d\-\W:]+(.+),\WL', text)
print(result.group(1))

有关re的更多信息,您可以从这里获得

如果整个日志位于名为text的变量中,您可以使用以下代码:

import re

#assume complete log file is in the text variable
#add code to load log-file into variable "text" HERE

#added sample text
text = """2020-05-19 07:25:46.768:Verbose: InvegoRFIDReaderProcessor:5:CheckSource:Truck Tag=, Reader Connected=True, Reader Address=XX.XX.XX.XX:XXXX, Last Msg Time=5/18/2020 11:51:03 AM, ReaderType=Source"""

pattern = re.compile(r'\.\d{3}:([\w:\s=,\.]*)Last')
result = pattern.findall(text)

print(result)
将匹配所有内容

在时间戳之后,如“2020-05-19 07:25:46.768:

之后是“Last Msg Time=5/18/2020 11:51:03 AM,ReaderType=Source”

并将结果放入名为result的列表中

我已经用您提供的示例日志测试了代码

您可以在此处测试任何正则表达式:

如果整个日志位于名为text的变量中,则可以使用以下代码:

import re

#assume complete log file is in the text variable
#add code to load log-file into variable "text" HERE

#added sample text
text = """2020-05-19 07:25:46.768:Verbose: InvegoRFIDReaderProcessor:5:CheckSource:Truck Tag=, Reader Connected=True, Reader Address=XX.XX.XX.XX:XXXX, Last Msg Time=5/18/2020 11:51:03 AM, ReaderType=Source"""

pattern = re.compile(r'\.\d{3}:([\w:\s=,\.]*)Last')
result = pattern.findall(text)

print(result)
将匹配所有内容

在时间戳之后,如“2020-05-19 07:25:46.768:

之后是“Last Msg Time=5/18/2020 11:51:03 AM,ReaderType=Source”

并将结果放入名为result的列表中

我已经用您提供的示例日志测试了代码

您可以在此处测试任何正则表达式:

您可以尝试使用python正则表达式
%
是为了喜欢,就像
*
是为了a一样。您可以尝试使用python正则表达式
%
是为了喜欢,就像
*
是为了a一样。