我认为我想做的是一项相当普遍的任务,但我在网上找不到任何参考.我有带标点符号的文字,我想要一个单词列表.
"Hey, you - what are you doing here!?"
Run Code Online (Sandbox Code Playgroud)
应该
['hey', 'you', 'what', 'are', 'you', 'doing', 'here']
Run Code Online (Sandbox Code Playgroud)
但是Python str.split()只能使用一个参数,所以在用空格分割之后,我所有的单词都带有标点符号.有任何想法吗?
我在网上找到了一些答案,但我没有使用正则表达式的经验,我认为这是我需要的.
我有一个字符串,需要用';'分割 或','也就是说,它必须是分号或逗号后跟空格.不带尾随空格的单个逗号应保持不变
示例字符串:
"b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3], mesitylene [000108-67-8]; polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]"
Run Code Online (Sandbox Code Playgroud)
应该拆分成包含以下内容的列表:
('b-staged divinylsiloxane-bis-benzocyclobutene [124221-30-3]' , 'mesitylene [000108-67-8]', 'polymerized 1,2-dihydro-2,2,4- trimethyl quinoline [026780-96-1]')
Run Code Online (Sandbox Code Playgroud) 我想将字符串拆分为整数和运算符,以便在python中进行Infix表达式求值.
这是我的字符串:
>>> s = (1-2+3)*5+10/2
Run Code Online (Sandbox Code Playgroud)
我试过这个分裂:
>>>list(s)
['(', '1', '-', '2', '+', '3', ')', '*', '5', '+', '1', '0', '/', '2']
Run Code Online (Sandbox Code Playgroud)
这是错的.因为'10'被分成'1','0'
我试过替代方案:
>>> re.findall('[+-/*//()]+|\d+',s)
['(', '1', '-', '2', '+', '3', ')*', '5', '+', '10', '/', '2']
Run Code Online (Sandbox Code Playgroud)
这也是错的.因为')*'应该分成')','*'
你能帮忙从给定的表达式中拆分运算符和整数吗?