我正在尝试从字符串 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/

10-11 04:35