python 我如何使用正则表达式来区分一个全大写的单词和一个大写的单词附加到一个缺少空格的小写字符?

wfsdck30  于 2023-02-21  发布在  Python
关注(0)|答案(3)|浏览(134)

抱歉标题太复杂了。我正在处理文本,有一些不受欢迎的特征:有些单词都是大写的,如'EXAMPLE WORD',而在其他情况下,有两个单词附加,但缺少空格,如'exampleWord'。我如何使用正则表达式根据小写〉大写模式分隔两个附加的单词,而不影响完全大写的单词?
我目前正在使用
.应用(λ x:关于(r”([A-Z])",r”\1”,x))
在Pandas数据框中的该列上。这将在每个大写字母前插入一个空格,将大写字母转换为单个字符串。
我想让一个正则表达式只检测小写字符后面紧跟大写字符的情况,在这一点上分隔单词,这将解决必须影响大写单词的问题。这可能吗?

44u64gxh

44u64gxh1#

您可以将str.replace与lookaround一起使用:

df['new'] = df['col'].str.replace('(?<=[a-z])(?=[A-Z])', ' ', regex=True)

示例:

col           new
0  EXAMPLE WORD  EXAMPLE WORD
1   exampleWord  example Word

regex demo

(?<=[a-z])  # match lowercase before
(?=[A-Z])   # match uppercase after
oxiaedzo

oxiaedzo2#

您可以使用 *lookaheadAssert *

re.sub("([A-Z])(?=[a-z])", r" \1", x)

将仅匹配后跟小写字符的大写字母。

相关问题