V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mantis
V2EX  ›  PHP

求解,字符串按特殊字符进行拆分

  •  
  •   mantis · 2022-09-19 18:36:02 +08:00 · 1306 次点击
    这是一个创建于 804 天前的主题,其中的信息可能已经有所发展或是发生改变。

    字符串:

    $str = "两个人的小森林有*2*个热点*爆*词你还未看(217054)";
    
    

    进行拆分,两个xx*中间的标记为 type=2,其他标记 type=1 ,期望结果如下:

    [
        {
            "type": 1,
            "text": "两个人的小森林有"
        },
        {
            "type": 2,
            "text": "2",
        },
        {
            "type": 1,
            "text": "个热点",
        },
        {
            "type": 2,
            "text": "爆",
        },
        {
            "type": 1,
            "text": "词你还未看(217054)"
        }
    ]
    
    

    求解,php 如何实现?

    eason1874
        1
    eason1874  
       2022-09-19 18:44:15 +08:00
    ?又来问,差不多的问题
    wdwwtzy
        2
    wdwwtzy  
       2022-09-19 19:00:15 +08:00
    如果你问的是这个问题的话,那不是很简单
    假如你*是成对出现的话,用* split 之后,type=2 永远会在奇数索引出现。

    但是我猜你想问的不是这个问题。
    huangzhe8263
        3
    huangzhe8263  
       2022-09-19 19:03:24 +08:00
    不不不,看看 LZ 的发帖记录,问的就是这个问题。

    建议还是先去学一下基本的知识再来问吧。
    bytesfold
        4
    bytesfold  
       2022-09-19 19:11:29 +08:00
    from pprint import pprint
    data = r"两个人的小森林有*2*个热点*爆*词你还未看(217054)"
    pprint([{'type': 1 if len(i) != 1 else 2, 'text': i} for i in data.split("*")])
    bytesfold
        5
    bytesfold  
       2022-09-19 19:14:28 +08:00
    打扰了,PHP..
    laoyur
        6
    laoyur  
       2022-09-19 19:29:54 +08:00
    regex 找出被星星夹着的部分的索引,然后所有分组都能抽取出来了

    话说第一眼扫过你的原文,还以为是被和谐过的语句呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2639 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:13 · PVG 19:13 · LAX 03:13 · JFK 06:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.