我正在尝试从字符串 022014-101
中提取子字符串 str1
:
str1 = <C:\User\Test\xyz\022014-101\more\stuff\022014\1>
# I dont need the 2nd 022014, only the first occuring one 022014-101
我通常使用
split("\\")
并在 \
之后拆分字符串以获取 [-5]
'th 项,但如果我有更多子文件夹,这很糟糕......正如您所看到的,022014-101
的前 6 位数字代表一个日期加上一些字符(-101在这种情况下)。我想我应该使用正则表达式,但是如何匹配 6 位数字并获取所有内容,直到出现 \
。我对正则表达式没有太多经验,有人知道解决方案吗?谢谢。 最佳答案
试试这个:(?<=\\)[\d]{6}[^\\]*
示例: http://regex101.com/r/qQ0tR3
解释:
(?<=\\) # Lookbehind for a \ (escaped \\)
[\d]{6} # Followed by 6 digits
[^\\]* # Followed by 0+ characters other than a \ (escaped \\)
这将确保您的 6 位日期直接出现在
\
之后,并包括下一个 \
之前的所有内容。关于python - 正则表达式类似日期的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21913362/