【问题标题】:split a string on a character when it's in the middle of the string当字符串位于字符串中间时,在字符上拆分字符串
【发布时间】:2020-01-09 14:01:16
【问题描述】:

我想在字符串中间的字符上拆分字符串

例子:

string_1 = '-1232-1412'
string_2 = '1234-1243'

我想要这个:

output_string_1 = ['-1232','1412']
output_string_2 = ['1234','1243']

我试过这个:

import re
In[1]: re.split(r'\w-',string_1)
Out[1]: ['-123', '1412']

但它删除了'-'之前的最后一个字符

【问题讨论】:

标签: python regex python-3.x split


【解决方案1】:

一种方法是拆分字符串断言不是字符串^ 的开头,并且在匹配- 断言不是字符串结尾$ 之后使用否定前瞻(?!

(?!^)-(?!$)

Regex demo | Python demo

【讨论】:

    【解决方案2】:

    您可以将此正则表达式与单词边界一起使用:

    \b-\b
    

    此正则表达式匹配带有单词边界的连字符包装器,因此仅匹配单词字符中间的连字符。

    代码:

    >>> reg = r'\b-\b'
    >>> print (re.split(reg, '-1232-1412'))
    ['-1232', '1412']
    >>> print (re.split(reg, '1234-1243'))
    ['1234', '1243']
    

    RegEx Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-08
      • 2015-08-29
      • 2014-05-27
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      相关资源
      最近更新 更多