![](/img/trans.png)
[英]Python regex replace, with lambda function, overwriting non-capturing groups
[英]How to use regex non-capturing groups format in Python
它不包含在内部组中,但它仍然作为外部组的一部分包含在内。 非捕获组并不一定意味着它根本没有被捕获......只是该组没有明确地保存在输出中。 它仍然作为任何封闭组的一部分被捕获。
只是不要将它们放入定义捕获的()
中:
import pandas as pd
df = pd.DataFrame(
{'a' : [1,2,3,4],
'b' : ['41u -428u', '31u - 68u', '11u - 58u', '21u - 318u']
})
df['b'].str.extract(r'- ?(\d+)u', expand=True)
0
0 428
1 68
2 58
3 318
这样你就匹配前面有'-'
东西(mabye后跟一个aspace),后面跟'u'
和两者之间的数字。
哪里,
- # literal hyphen
\s? # optional space—or you could go with \s* if you expect more than one
(\d+) # capture one or more digits
u # literal "u"
我认为你正在尝试太复杂的正则表达式。 关于什么:
df['b'].str.extract(r'-(.*)u', expand=True)
0
0 428
1 68
2 58
3 318
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.