Python - 在第一次出现不允许的字符时拆分字符串
Python - Split string on first occurrence of non-allowable characters
我有一些 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' 和 return 中的字符。
所以我希望预期输出为 'abc-something_123'
在此感谢任何帮助
你可以在这里使用 re.findall
:
mystring = "my_id=abc-something_123&anything#;?lcdkahck;my_id%3Dkckdkkj_bcjc"
match = re.findall(r'^my_id=([\w-]*).*$', mystring)[0]
print(match)
这会打印:
'abc-something_123'
我有一些 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' 和 return 中的字符。
所以我希望预期输出为 'abc-something_123'
在此感谢任何帮助
你可以在这里使用 re.findall
:
mystring = "my_id=abc-something_123&anything#;?lcdkahck;my_id%3Dkckdkkj_bcjc"
match = re.findall(r'^my_id=([\w-]*).*$', mystring)[0]
print(match)
这会打印:
'abc-something_123'