字符串中倒数第二次出现的整数 (Python)
字符串中倒数第二次出现的整数
考虑“hEY3 a7yY5”作为我的字符串,该字符串中的最后一个整数是 5,倒数第二个整数是 7。
如何找到该字符串中最后第二个整数的索引? 我不确定是否可以使用 rindex() 以及如果可以的话如何使用。
上述字符串中 7 的索引是 6。 我无法专心写类似 stre.rindex(isnumeric())
的内容
Second last occurence of an integer in a string
Consider "hEY3 a7yY5" as my string, the last integer in this string is 5 and the second last integer is 7.
How do I find index of last second integer in this string?
I'm not sure to if I can use rindex() and if so then how.
The index of 7 in the above string is 6.
I can't wrap my head around writing something like stre.rindex(isnumeric())
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这将找到字符串中倒数第二个出现的数字序列并打印其偏移量。
如果您不喜欢re,那么您可以这样做:
输出:
请注意,如果字符串是“hEY7 a75yY5”,则会打印相同的结果 - 即,这个还处理多于一位数字的序列
This will find the penultimate occurrence of a sequence of digits in a string and print its offset.
If you are averse to re then you can do it like this:
Output:
Note that the same result would be printed if the string is "hEY7 a75yY5" - i.e., this also handles sequences of more than one digit
使用模式获取倒数第二个数字的索引的选项,并使用 匹配 对象:
输出
模式匹配:
\d
匹配单个数字(?=
正向前瞻,断言要做什么右边是[^\d\n]*
可选择匹配除数字或换行符之外的任何字符\d
匹配单个数字[^\d\n]*
可选择匹配除数字或换行符之外的任何字符\Z
字符串结尾)
关闭前视An option to get the index of the second last digit using a pattern, and use the start() method of the Match object:
Output
The pattern matches:
\d
Match a single digit(?=
Positive lookahead, assert what is to the right is[^\d\n]*
Optionally match any char except a digit or a newline\d
Match a single digit[^\d\n]*
Optionally match any char except a digit or a newline\Z
End of string)
Close the lookahead你可以尝试这样的事情
You may try something like this