假设我有一个带有“我喜欢大象”行的文本文件。如果我将上述文件和管道传送到“grep 大象”,我会得到整行“我喜欢大象”。
如何使用 re 在 Python 中实现此功能?我一直在尝试以下方法:
test = re.search('elephants', 'I like elephants.\nThey are nice')
test.group(0)
Run Code Online (Sandbox Code Playgroud)
我只得到“大象”这个词,而不是整个句子作为输出。
我如何得到整个句子?谢谢你。
Ped*_*sta 11
您可以使用in关键字来检查您的子字符串:
with open('text_file.txt', 'r') as f:
for line in f.readlines():
if 'elephant' in line:
print(line)
Run Code Online (Sandbox Code Playgroud)
或者,如果您有一个s包含\n字符的字符串:
for line in s.split('\n'):
if 'elephant' in line:
print(line)
Run Code Online (Sandbox Code Playgroud)
您的正则表达式仅打印,elephant因为这就是它捕获的内容:正是您的正则表达式字符串。如果您要尝试使用以下正则表达式:
test = re.search(r'(.*?elephants.*?)\n', 'I like elephants.\nThey are nice')
Run Code Online (Sandbox Code Playgroud)
然后你会得到结果test.group(0),test.group(1)其中包括大象前后的整条线。
In [22]: test.group(0)
Out[22]: 'I like elephants.\n'
Run Code Online (Sandbox Code Playgroud)
这是整个捕获的字符串。
In [23]: test.group(1)
Out[23]: 'I like elephants.'
Run Code Online (Sandbox Code Playgroud)
这只是捕获组(括号之间的字符串)。
| 归档时间: |
|
| 查看次数: |
32645 次 |
| 最近记录: |