掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 621|回复: 3

[求助] 请教python中一个正则表达式的用法

[复制链接]
  • TA的每日心情
    开心
    2020-11-30 19:14
  • 签到天数: 249 天

    [LV.8]以坛为家I

    发表于 2022-8-7 21:45:36 | 显示全部楼层 |阅读模式
    今天遇到一个python中使用re模块进行正则搜索的案例,代码里有一句看不懂,请知道的朋友不吝赐教!
    . h  I; \- `3 D; ?6 `7 K2 l; Y/ F- R0 \8 K$ ^
    sentences = re.split("(?<=[" + "".join(sent_separator) + "])\s*", text)
    % K* w7 u, r' ~% \, W* x) \8 `7 @- A/ p6 O5 |
    想知道,pattern中调用字符串方法是怎么实现的?谢谢!

    该用户从未签到

    发表于 2022-8-7 23:18:22 | 显示全部楼层
    本帖最后由 entropy 于 2022-8-7 23:33 编辑
    2 \7 L, z6 T" k, s$ Z$ P# A* J3 \" R& A% F$ p8 T' C
    "(?<=[" + "".join(sent_separator) + "])\s*"4 e9 ?9 D( [+ u6 ~" _* l4 b6 {

    * s& S; E7 i+ O+ q+ m把三个字符串加起来,中间用到了.join() 方法,把 sent_separator 所有元素连在一起,用 "" 分隔。) Y, K9 a5 U" i/ {5 D% x: w  L& I
    ; m9 i2 E# t5 X- i- t
    这种写法不怎么好。建议写成:fr'(?<=[{"".join(sent_separator)}])\s*'

    评分

    1

    查看全部评分

  • TA的每日心情
    开心
    2020-11-30 19:14
  • 签到天数: 249 天

    [LV.8]以坛为家I

     楼主| 发表于 2022-8-10 18:23:29 | 显示全部楼层
    entropy 发表于 2022-8-7 23:18. R* u1 F& ^5 t. e5 P
    "(?

    - p; L. B! ^- |
    ! l3 T4 @& @# W! o/ _2 ^! l8 `谢谢回复。我想我知道错哪儿了。您说的是字符串"(?<=["、字符串"".join(sent_separator)和字符串"])\s*"进行拼接,得到新的字符串是吧。我先入为主地认为pattern是用冒号包围的,所以直接就将最两边的双引号考虑在外了,所以怎么也想不通" + "".join(sent_separator) + "这部分是咋拼接了。太囧了。谢谢最后的建议!优雅很多。
  • TA的每日心情
    开心
    2019-8-21 08:44
  • 签到天数: 163 天

    [LV.7]常住居民III

    发表于 2022-9-26 13:55:40 | 显示全部楼层
    本帖最后由 mikeee 于 2022-9-26 14:23 编辑
    5 h6 h2 Z# W9 t8 R" \) V8 d( e' i  |2 b3 ]
    那地方也可以写成: fr'(?<={"|".join(sent_separator)})\s*'
    7 D+ f4 E  b* I; ^: k
    , s9 y3 H3 [8 u9 h0 h不过一般情况下分句远不止在sent_separator处断开那么简单。python的话或许可以考虑用 pypi 包 seg-text https://pypi.org/project/seg-text/或类似的包。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-4-28 00:22 , Processed in 0.044646 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表