提问人:HEB 提问时间:6/15/2022 最后编辑:HEB 更新时间:6/15/2022 访问量:84
Regex 拉取字符串的第一个和最后一个字母
Regex to pull the first and last letter of a string
问:
我正在使用它来验证我的字符串。它可以从所述字符串中拉出数字序列,从而生成 02-01-1716,但是,我还需要拉出字符串开头和结尾的字母;即 Q:\Region01s\FY 02\02-01-1716 A.pdf 我需要 Q 和A,所以最后我会有 Q:02-01-1716A\d{2}-\d{2}-\d{4}
答:
0赞
mozway
6/15/2022
#1
您可以尝试:
(.).*(.)\.[^\.]+$
或者通过验证:
(.).*\d{2}-\d{2}-\d{4}(.)\.[^\.]+$
评论
0赞
HEB
6/15/2022
这会导致输出 [('Q', 'A')],但是我需要类似于 Q: 02-01-1716A 的东西,我意识到我原来的问题不一定指定这一点,所以我编辑了它
0赞
mozway
6/15/2022
然后(.:).*(\d{2}-\d{2}-\d{4}.)\.[^\.]+$
1赞
Wiktor Stribiżew
6/15/2022
#2
你可以使用
import re
regex = r"^([a-zA-Z]:)\\(?:.*\\)?(\d{2}-\d{2}-\d{4}[a-zA-Z]?)"
text = r"Q:\Region01s\FY 02\02-01-1716A.pdf"
match = re.search(regex, text)
if match:
print(f"{match.group(1)} {match.group(2)}")
# => Q: 02-01-1716A
^
- 字符串的开头([a-zA-Z]:)
- 第 1 组:一封信和:
\\
- 反斜杠(?:.*\\)?
- 除换行符以外的任何字符的可选序列,尽可能多地,后跟反斜杠(\d{2}-\d{2}-\d{4}[a-zA-Z]?)
- 第 2 组:两位数字、两位数字、四位数字、可选字母。-
-
输出(如果存在匹配项)是组 1、空格和组 2 值的串联。
评论
0赞
HEB
6/15/2022
我将如何编辑它以打开和阅读文本文档,而不是只读取一个特定的文本行但仍获得相同的输出?
1赞
Wiktor Stribiżew
6/15/2022
@HEB像这样。
评论