2024-09-24 22:16:54 发布
网友
如何在特定文本中获取文本? 比如,如果我有这样的文字:
'lololol \r asdfasdf r\ gfhfgr'
如何让它返回“asdfasdf”。基本上,获取位'\r'和'r\'之间的文本?在
'\r'
'r\'
另一个解决方案
import re s = r'lololol \r asdfasdf r\ gfhfgr' pattern = re.compile('\\\\r (.*?) r\\\\') print pattern.findall(s)
结果是['asdfasdf']
['asdfasdf']
编辑:
好吧,伙计,这就是你在你的例子中想要的。如果您愿意,欢迎使用
它会给你[' asdfasdf ']。在
[' asdfasdf ']
“All the slashes”是必需的,因为Python和re解析字符串的方式不同;斜杠用作有向图的转义符,如\n(换行符)。{cd4>你必须用斜杠来表示。请尝试print('\\')查看此内容。在
\n
print('\\')
然后必须将其加倍,因为根据字符串本身的一组有向图(对于数字,\s表示空白,等等)重新解析字符串。因此,如果输入'\\\\',Python将其理解为一个由两个斜杠组成的字符串,\\,它传递给re,re解析它并认为您在寻找一个\字符。在
'\\\\'
\\
\
有时,您可以不这样做;如果您有一个类似'\m'的字符串,其中尾随字符没有生成有效的有向图,那么结果实际上是两个字符的字符串\m(请尝试print('\m'))。\r有点古怪;Python将其识别为回车有向图,但re不使用\r作为有向图,因此给Python“\r”或“\\r”都会导致重新查找文本字符串“\r”。我更喜欢双双斜杠,因为这意味着你不必记住两个不同的定义,什么是合法有向图,什么是非法有向图!另一方面,Python和re都将\'识别为单引号有向图(print('\'')打印一个'字符),因此这两个斜杠都必须完全双转义,否则您将得到一个“嘿,字符串的其余部分在哪里?”错误(“字符串未终止”)。在
'\m'
\m
print('\m')
print('\'')
'
另一种方法是输入原始字符串(r'abc');这告诉Python不要解析字符串中的有向图,但re仍然会这样做,因此您的模式必须看起来像
r'abc'
pattern = re.compile(r'\\r(.*?)r\\')
可以在Python中使用正则表达式。在
>>> import re >>> s = 'lololol \r asdfasdf r\ gfhfgr' >>> e = re.search(r'\r (?P<boxflux>.*) r\\', s) >>> e.group('boxflux') 'asdfasdf'
在boxflux.com网站在
另一个解决方案
结果是
['asdfasdf']
编辑:
好吧,伙计,这就是你在你的例子中想要的。如果您愿意,欢迎使用
^{pr2}$它会给你
[' asdfasdf ']
。在“All the slashes”是必需的,因为Python和re解析字符串的方式不同;斜杠用作有向图的转义符,如
\n
(换行符)。{cd4>你必须用斜杠来表示。请尝试print('\\')
查看此内容。在然后必须将其加倍,因为根据字符串本身的一组有向图(对于数字,\s表示空白,等等)重新解析字符串。因此,如果输入
'\\\\'
,Python将其理解为一个由两个斜杠组成的字符串,\\
,它传递给re,re解析它并认为您在寻找一个\
字符。在有时,您可以不这样做;如果您有一个类似
'\m'
的字符串,其中尾随字符没有生成有效的有向图,那么结果实际上是两个字符的字符串\m
(请尝试print('\m')
)。\r有点古怪;Python将其识别为回车有向图,但re不使用\r作为有向图,因此给Python“\r”或“\\r”都会导致重新查找文本字符串“\r”。我更喜欢双双斜杠,因为这意味着你不必记住两个不同的定义,什么是合法有向图,什么是非法有向图!另一方面,Python和re都将\'识别为单引号有向图(print('\'')
打印一个'
字符),因此这两个斜杠都必须完全双转义,否则您将得到一个“嘿,字符串的其余部分在哪里?”错误(“字符串未终止”)。在另一种方法是输入原始字符串(
r'abc'
);这告诉Python不要解析字符串中的有向图,但re仍然会这样做,因此您的模式必须看起来像可以在Python中使用正则表达式。在
在boxflux.com网站在
相关问题 更多 >
编程相关推荐