任何人都知道如何在中心找到被空格包围的角色?
ios.*/android.*
我希望能够将中间的1 + 1
分开,以便在if / else语句中使用。
对不起,如果我不太清楚,我是Python初学者。
答案 0 :(得分:5)
我认为您正在寻找类似split()
方法的内容,默认情况下会在空格上分割。
假设我们有一个字符串s
s = "1 + 1"
chunks = s.split()
print(chunks[1]) # Will print '+'
答案 1 :(得分:1)
如果字符是加号或减号或mult或div符号,则此正则表达式将检测由空格包围的单个字符:r' ([+-*/]) '
。注意撇号内的空格。括号“捕捉”中间的角色。如果需要识别不同的字符集,请更改括号内的设置。
如果您之前没有处理正则表达式,请阅读re
模块。它们对于简单的文本处理非常有用。这里的两个相关特征是“字符类”(我的例子中的方括号)和“捕获括号”(圆形的parens)。
答案 2 :(得分:0)
您可以使用正则表达式:
s="1 + 1"
a=re.compile(r' (?P<sym>.) ')
a.search(s).group('sym')
答案 3 :(得分:0)
不知道中心角色分隔了多少个空格,我会使用以下内容:
s = '1 + 1'
middle = filter(None, s.split())[1]
print middle # +
split
的工作方式与Zac提供的解决方案相同,但如果有多个空格,则返回的列表将包含一堆''
个元素,我们可以将其删除使用filter(None, )
函数。
然后,这只是提取你的第二个元素的问题。
检查一下如果我们一步一步地看一下,那么这就是使用python控制台的一切工作原理:
>>> s = '1 + 1'
>>> s.split()
['1', '+', '', '', '1']
>>> filter(None, s.split())
['1', '+', '1']
>>> filter(None, s.split())[1]
'+'
答案 4 :(得分:0)
import re
def find_between(string, start_=' ', end_=' '):
re_str = r'{}([-+*/%^]){}'.format(start_, end_)
try:
return re.search(re_str, string).group(1)
except AttributeError:
return None
print(find_between('9 * 5', ' ', ' '))