gpt4 book ai didi

python - 正则表达式 - 在第一个逗号之前获取所有内容 - python

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:30 26 4
gpt4 key购买 nike

我对输入数据进行了 utf8 编码。

我正在对输入应用正则表达式以查找逗号前的所有内容。
但是我的正则表达式返回 None,尽管我可以直观地看到逗号。

这是怎么回事?
我在 MyString 中测试了 ',',它工作正常。

这是我的输入数据:

 ID            MyString
765427 Units G2 and G3, kings Drive
207162 Unit 5/165,Elizabeth Palace
47568 Unit 766 - 767 Gate 7,Jacks Way,
15498 Unit F, Himalayas Street,

根据我的正则表达式 - re.search(r".*?,", s['MyString']),
我希望我的输出是:

 ID            MyString
765427 Units G2 and G3,
207162 Unit 5/165,
47568 Unit 766 - 767 Gate 7,
15498 Unit F,

但我得到的是:

 ID            MyString
765427 Units G2 and G3,
207162 None
47568 Unit 766 - 767 Gate 7,
15498 None

如果我对正则表达式的理解正确,请更正。否则怎么了。我不知道这有什么问题。

最佳答案

作为@idjaw上面建议,实现此目的的更简单方法是使用 split() 函数:

my_string = 'Unit 5/165,Elizabeth Palace'
ans = my_string.split(',', 1)[0] # maxsplit = 1;
print ans

结果:
5/165 单元

您甚至可以不用 maxsplit=1 参数,在这种情况下:

ans = my_string.split(',')[0]

另外请注意,虽然从技术上讲这不是错误,但为类保留变量名的首字母大写被认为是最佳实践。参见 What is the naming convention in Python for variable and function names?PEP8变量命名约定。

正则表达式解决方案:
我注意到在你的示例结果中,当逗号后面有一个空格时(在要分析的字符串中),你得到了预期的结果。
但是,当逗号后没有空格时,您的正则表达式返回“无”。

尝试使用正则表达式模式 (.*?,) 而不是 .*?,

以下是一些用于调试和测试正则表达式的在线工具:
http://pythex.org/
https://regex101.com/
(可以选择为您生成代码,尽管它可能比必要的更冗长)

关于python - 正则表达式 - 在第一个逗号之前获取所有内容 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44533304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com