Python检测由空格包围的字符

时间:2016-09-07 04:29:01

标签: python python-3.x

任何人都知道如何在中心找到被空格包围的角色?

ios.*/android.*

我希望能够将中间的1 + 1分开,以便在if / else语句中使用。

对不起,如果我不太清楚,我是Python初学者。

5 个答案:

答案 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, )函数。

然后,这只是提取你的第二个元素的问题。

https://eval.in/636622

检查一下

如果我们一步一步地看一下,那么这就是使用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', ' ', ' '))