【发布时间】:2020-12-07 04:51:41
【问题描述】:
我有一些 python 代码,我想在第一次出现不允许的字符时扫描和拆分字符串。
import re,string
mystring="my_id=abc-something_123&anything#;?lcdkahck;my_id%3Dkckdkkj_bcjc"
if "my_id=" in mystring:
mystring = mystring[mystring.index("my_id=") + 6 : len(mystring)][0:100]
mystring = re.split('[;&#]', mystring)[0]
print(mystring)
在这种情况下会发生什么,我在 ; 即将到来的地方正确地得到了字符串,但是我的数据可以包含任何不可预测的字符 ;。
我尝试过驱除这些字符
allowable_character = '-' + '_' + string.ascii_letters + string.digits
mystring = re.sub('[^%s]' % allowable_character, '', mystring)
print(mystring)
但这只是过滤了包含不在“allowable_character”中的字符的字符串。
我想要实现的是一旦字符不在“allowable_character”中的字符就拆分字符串并返回该字符串。
所以我希望预期输出为 'abc-something_123'
这里感谢任何帮助
【问题讨论】:
-
给定
mystring,如上所示,您想要的确切输出是什么,为什么? -
@TimBiegeleisen - 我想要在 'my_id=' 之后的字符串,直到 '-'、'_'、字母和数字之外的任何字符。因此,如果其他字符显示为 &, ;或任何东西,我正在尝试获取子字符串。如果需要更多详细信息,请告诉我
标签: python regex string split pattern-matching