首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“逃避":”用Python?“

“逃避":”用Python?“
EN

Stack Overflow用户
提问于 2017-03-25 03:49:03
回答 2查看 1.2K关注 0票数 0

我正在使用Python (和Pytumblr),并试图从一些返回的数据中提取特定的字符串,但是我正在搜索的字符串中包含":“。每当我运行我的脚本时,我都会得到错误:

代码语言:javascript
复制
File "myfile.py", line 22
    if re.search('^ion': u'..', u'b', line) :
                       ^
SyntaxError: invalid syntax

这是我的代码:

代码语言:javascript
复制
import pytumblr
import re

returned = client.submission('blog') # get the submissions for a given blog

sch = open('returned')
for line in sch:
    line = line.rstrip()
    if re.search('^ion': u'..', u'b', line) :
        print line

这段代码中是否有另一个错误,或者是否有一种我不知道的逃避方法?我对Python非常陌生,但我并没有想到:需要逃跑。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-25 03:59:47

这是语法错误,因为冒号不是字符串的一部分。单引号'标记正在关闭字符串。你的第一个论点被解析为:

代码语言:javascript
复制
'^ion'       - String 1: ^ion
:            - Syntactical colon
 u           - The syntactical character u,
               indicating you intend for the
               following string literal to be
               in unicode
'..'         - String 2: ..

如果希望^ion末尾的单引号成为字符串的一部分,则需要用反斜杠'^ion\':转义,或者在字符串本身周围使用双引号。由于Python接受字符串文字标记的单引号和双引号,所以'hello'"hello"的含义相同。使'"hello world"'"'hello world'"都成为合法的字符串。

如果正则表达式是这里的痛点,那么有大量的文献和工具可以提供帮助。我推荐regex101

票数 2
EN

Stack Overflow用户

发布于 2017-03-25 03:59:15

试着使用双引号:

代码语言:javascript
复制
re.search("^ion': u'..', u'b", line):

或者逃逸'

代码语言:javascript
复制
re.search('^ion\': u\'..\', u\'b', line):
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43012320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档