![](/img/trans.png)
[英]How can i use regex pattern the first from the end to have the last sentence in python
[英]How do I use Python Regex to find a sentence with a capitalized word at the end?
我正在为类(在 jupyter 中)进行作业,我需要在 Python 中编写一个regex
语句,该语句将返回所有行(文档已经分开),最后一个单词完全大写。
例如,如果我有以下句子:
我喜欢苹果。
我喜欢橘子。
我喜欢土豆。
第一句和第三句应该回到我身边。 这是我尝试过的:
my_regex = r".*[^a-z][A-Z]$"
[line for line in poemlines if re.search(my_regex, line)]
和
my_regex = r"\b[^a-z][A-Z]{0,10}$"
[line for line in poemlines if re.search(my_regex, line)]
你试过:
r".*[^a-z][A-Z]$"
这匹配任何.*
,后跟不是单个小写字母[^az]
的字符,后跟单个大写字母[AZ]
的字符,然后是字符串$
的结尾。
你试过:
r"\b[^a-z][A-Z]{0,10}$"
这匹配单词边界\\b
,后跟不是单个小写字母[^az]
字符,后跟 0-10 个大写字母[AZ]{0,10}
,然后是字符串$
的结尾。
我发现刚接触正则表达式的程序员经常被它们弄糊涂,最终只是尝试了一堆东西 - 理解正则表达式中每个字符的含义真的很有帮助,在线正则表达式工具可以帮助解决这个问题,因为它们往往会提供一个完整解释(如 regex101.com)
像这样的事情是有道理的:
import re
poemlines = ['I like APPLES.', 'I like oranges.', 'I like POTATOES.']
my_regex = r'\b[A-Z]+\.$'
print([line for line in poemlines if re.search(my_regex, line, re.MULTILINE)])
这是有效的,因为它匹配单词边界\\b
,后跟一个或多次的大写字母[AZ]+
,后跟文字句点\\.
然后是字符串$
的结尾。
请参阅此处的解释https://regex101.com/r/XstTcc/1并使用它。 请注意,它也可以在没有, re.MULTILINE
,但这是因为每一行都是它自己的字符串。 在您要在多行文本中进行匹配的情况下,您会希望在那里进行匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.