如果我有如下示例字符串:
LEARNING-LEARNING-LEARNING-LEARNING-LEARNING-COMPANY_ORG_CHART-LEARNING-LEARNING-LEARNING-END
我只想提取前n个。的步骤,其中n由no定义。之间的连字符。
So if n=5,
我只想要前5个步骤。
输出:
LEARNING-LEARNING-LEARNING-LEARNING-LEARNING
我尝试过:
s1=re.search(r'([A-za-z_].*-{0,5}[A-za-z_].*?)',s)
print(s1.group())
但是它将整个字符串作为输出。
LEARNING-LEARNING-LEARNING-LEARNING-LEARNING-COMPANY_ORG_CHART-LEARNING-LEARNING-LEARNING-END
In [ ]:
答案 0 :(得分:6)
如果这是实际格式,则对于提供的示例,正则表达式可能会过大。另一种选择是仅使用字符串方法和索引:
x='LEARNING-LEARNING-LEARNING-LEARNING-LEARNING-COMPANY_ORG_CHART-LEARNING-LEARNING-LEARNING-END'
print('-'.join(x.split('-')[:5]))
'LEARNING-LEARNING-LEARNING-LEARNING-LEARNING'
答案 1 :(得分:0)
尝试一下:
s1 = re.search(r'^([A-za-z_]+-){0,4}[A-za-z_]+',s)
print(s1)
(此示例适用于n = 5)