Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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中剪切或拆分字符串_Python_String - Fatal编程技术网

在python中剪切或拆分字符串

在python中剪切或拆分字符串,python,string,Python,String,不知什么原因,我搞不清楚。 我有一个字符串,类似于py脚本打印输出时的字符串(必须隐藏一些信息): 我只想从字符串中获取2018年5月4日星期五的。实现这一点最简单或最好的方法是什么? 我在这里翻阅了一些旧文档,并试图以类似的方式复制它,我认为剪切和切片对我来说是最令人困惑的。谢谢既然您是从BeautifulSoup获得此功能,那么您可能正在执行类似操作以获取输入标记: >>> str(tr.input) '<input name="submit" onclick="

不知什么原因,我搞不清楚。 我有一个字符串,类似于py脚本打印输出时的字符串(必须隐藏一些信息):


我只想从字符串中获取2018年5月4日星期五的
。实现这一点最简单或最好的方法是什么?

我在这里翻阅了一些旧文档,并试图以类似的方式复制它,我认为剪切和切片对我来说是最令人困惑的。谢谢

既然您是从BeautifulSoup获得此功能,那么您可能正在执行类似操作以获取
输入
标记:

>>> str(tr.input)
'<input name="submit" onclick="var srvstr=\'Friday 4th of May 2018\';someweb(srvstr);document.someemail.securitystring.value=\'\';return false;" src="images/button-submit.png" type="image"/>'
当然,它仍然很凌乱,但并没有那么糟糕,更重要的是,我们知道它引用了Javascript代码以适应HTML。因此,我们知道什么可以和不可以在其中不逃跑,所以我们不必担心很多事情,否则可能永远不会发生,但你不能确定(因此肯定会发生在你部署和睡觉15分钟后)

重新搜索(r“srvstr=”(.*?”,tr.input['onclick'])) >>>重新搜索(r“srvstr=”(.*?”,tr.input['onclick'])。组(1) “2018年5月4日星期五”
现在,我们不必对他们的日期格式进行反向工程,希望我们做对了;这只是他们在
srvstr
变量中放入的任何字符串。(尽管如果您真的想将其解析为
datetime
对象或其他东西…)


当然,解析别人的文本时,你永远无法保证任何事情,但如果这一切停止工作,很可能是因为他们完全改变了执行
onclick
处理程序的方式,在这种情况下,此代码应该会出现异常并严重失败,而不是开始产生垃圾。

您的字符串是此HTML
标记,还是包含此标记的某个完整HTML页面?如果是这样的话,我会首先使用HTML解析器,获取
onclick
属性,然后再查看在该属性的值中解析JavaScript代码片段(已经转义了,很容易处理)。如果您已经这样做了,它可以像
srvstr='(*)这样的正则表达式一样简单“
。您是否总是在查找字符串文字?如果是这样,那么就可以在上面调用
str.find('2018年5月4日星期五')
,如果找到了,就完成。你可以把那个
“星期五…”
字符串传下去。我猜虽然它每天都是不同的字符串…@abarnert我使用过bs4和lxml解析器。将其解析为文本也有点棘手<代码>@pushkin是的,它每天都在变化非常感谢您的详细解释。虽然我不喜欢js,但今天我将对它进行测试,并对设置进行调整,看看会发生什么happens@uzdisral是的,我假设你不想把JS解析为JS。这就是为什么我用一个简单的正则表达式解析它,希望它能随着字符串的日复一日的变化而工作,但如果他们完全重写JS代码生成器,它会立即中断。我会将代码和页面发送给你,看看我做了什么以及如何做,但我不能在这里发布,只是出于某种原因:)
>>> str(tr.input)
'<input name="submit" onclick="var srvstr=\'Friday 4th of May 2018\';someweb(srvstr);document.someemail.securitystring.value=\'\';return false;" src="images/button-submit.png" type="image"/>'
>>> tr.input['onclick']
"var srvstr='Friday 4th of May 2018';someweb(srvstr);document.someemail.securitystring.value='';return false;"
>>> re.search(r"srvstr='(.*?)'", tr.input['onclick'])
<_sre.SRE_Match object; span=(4, 35), match="srvstr='Friday 4th of May 2018'">
>>> re.search(r"srvstr='(.*?)'", tr.input['onclick']).group(1)
'Friday 4th of May 2018'