【问题标题】:Split string on capital letter and a capital letter followed by a lowercase letter [closed]大写字母和大写字母后跟小写字母的拆分字符串[关闭]
【发布时间】:2019-08-08 20:16:49
【问题描述】:

下面是我的字符串模式,

'YES-HIDETotal Maze LLC.'

&我想把上面的字符串拆分成下面的列表,

 ['YES-HIDE', 'Total Maze LLC.']

如何在 python 中使用正则表达式?

编辑:

我想使用re 包在大写字母旁边拆分一个字符串,然后是一个小写字母

再举一个例子

'PLEASE SPLITThis String'

进入

['PLEASE SPLIT', 'This String']

【问题讨论】:

  • 只有这种特殊情况?或者你有一个逻辑规则要实现?
  • 请也分享其他示例输入字符串。
  • 将标题中的信息放入问题中可能是个好主意。显然我不是这里唯一一个对头衔视而不见的人。
  • 既然你已经澄清了你的问题,请向我们展示你在这个问题上的一些工作。您尝试过什么,您在哪里卡住了?你对正则表达式了解多少? “正则表达式”是指 the third-party module by that name 还是指 re 模块或其他模块?
  • 如果你根本不懂正则表达式,这个问题对这个网站来说太宽泛了,因为这不是一个教程网站。有许多可用的教程,在线和书籍。 (包含该主题的一本流行书籍是Automate the Boring Stuff with Python。)您应该阅读正则表达式,尝试一些更简单的问题,然后尝试这个问题。如果这需要太长时间,那么使用纯 Python 可以很容易地解决这个问题——你尝试过吗?

标签: python string list uppercase lowercase


【解决方案1】:

我正在尝试给出一个答案,以帮助您理解问题并制定解决方案。

您有一个带有大写字母的字符串,并且在某些时候还有一个小写字母。您希望在第一个小写字母之前的位置拆分字符串。您可以遍历字符串并找到第一个小写字母,记住该位置并在那里拆分字符串。

这既不是正则表达式也不是快速,而是简单而冗长:

input_string = 'TESTTest'
for pos, letter in enumerate(input_string):
  if letter.islower() and letter.isalpha():
    split_position = pos-1
    break
first_part = input_string[:split_position]
second_part = input_string[split_position:]

【讨论】:

    【解决方案2】:

    尝试正则表达式:(?<=[A-Z])[A-Z](?=[a-z])

    Regex Demo

    Python Demo

    【讨论】:

      猜你喜欢
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多