2024-04-24 08:19:16 发布
网友
我有一个类似"SW: C000032345RE"的字符串。我正在试着提取下10个字母。你知道吗
"SW: C000032345RE"
所以答案应该是"C000032345RE"。我正试图用两种不同的方法来实现它
"C000032345RE"
Fist是SW:后面的10个字母,或者SW:和RE之间的字母。我正在使用以下脚本
import re sub = "SW: C000032345RE" a= re.search("^SW: (\w)", sub) a.group(0)
当然,这并没有给我带来想要的结果。每一个帮助都很重要!你知道吗
您正在搜索单个单词字符(\w),而您应该搜索其中的10个字符(\w{10})。您还需要group(1)作为括号的内容,而不是group(0),后者是整个匹配项。你知道吗
\w
\w{10}
group(1)
group(0)
import re sub = "SW: C000032345RE" a = re.search("^SW: (\w{10})", sub) a.group(1)
您可能还应该在调用方法之前检查a,因为regex可能不匹配!例如
a
>>> sub = "SW: C00003..." >>> a = re.search("^SW: (\w{10})", sub) >>> a.group(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'NoneType' object has no attribute 'group'
\s*表示零个或多个空格,\w{10}表示10个单字字符:
\s*
import re sub = "SW: C000032345RE" a = re.search("^SW:\s*(\w{10})", sub) print (a.group(1)) C000032345
不使用regex的溶液
regex
In [84]: val = sub.find('SW: ')+len('SW: ') In [85]: sub[val:val+10] Out[85]: 'C000032345'
您正在搜索单个单词字符(
\w
),而您应该搜索其中的10个字符(\w{10}
)。您还需要group(1)
作为括号的内容,而不是group(0)
,后者是整个匹配项。你知道吗您可能还应该在调用方法之前检查
a
,因为regex可能不匹配!例如\s*
表示零个或多个空格,\w{10}
表示10个单字字符:不使用
regex
的溶液相关问题 更多 >
编程相关推荐