字符串拆分问题:
有如下字符串:
你关注的杨幂有 10 个未看
有如下关键字:
["杨幂", 10]
将字符串按关键字拆分为数组:
["你关注的", "杨幂", "有", 10, "个未看"]
该怎么解决?
字符串拆分问题:
有如下字符串:
你关注的杨幂有 10 个未看
有如下关键字:
["杨幂", 10]
将字符串按关键字拆分为数组:
["你关注的", "杨幂", "有", 10, "个未看"]
该怎么解决?
|
KinniceSep 13, 2022
1
preg_split
|
|
leoQaQSep 13, 2022
2
1. 先用"杨幂"去拆分数组,得到 ["你关注的","有 10 个未看"];
2. 把"杨幂" 插入数组,得到["你关注的","杨幂","有 10 个未看"]; 3. 再用第二个关键字"10" 去拆分新数组的后一个元素, 得到["有","个未看"]; 4. 把"10" 插入数组,然后就没有然后了 |
|
2kCS5c0b0ITXE5k2Sep 13, 2022
3
正则
|
|
crayygySep 13, 2022
4
jieba ?
|
|
KinniceSep 13, 2022
5
<?php
$arr = preg_split("/(10|杨幂)/","你关注的杨幂有 10 个未看", -1, PREG_SPLIT_DELIM_CAPTURE); print_r ($arr); ?> |
|
JoooooooooSep 13, 2022
6
边缘的 case 如果要拆分 "杨幂" 和 "幂有" 结果是啥?
|
|
eason1874Sep 13, 2022
7
1 、像 #5 那样用正则
2 、先用 str_replace 在关键词前后插入分隔符,再用 explode 分割成数组 数量大的话,两种都试试,有些场景第二种比较快 |
|
8
楼主的原问题是什么。
总觉得又是个 XY problem |
|
9
|
|
lmshlSep 13, 2022
10
|
|
sadfQED2Sep 13, 2022 via Android
11
你原问题是啥?看你样子似乎是需要做中文分词?
|
|
13
|
|
PythonYXYSep 13, 2022
14
构建一个有限状态自动机即可
|
|
asLw0P981N0M0TCCSep 13, 2022
15
怎么和百度搜索 关键词标红有点像
|
|
air8712Sep 13, 2022
16
字典树
|
|
haolongsunSep 13, 2022
17
不确定的句子->词法分析,直接上 NLP
固定的句子,就像你这个只有关键词是可变的,那么直接正则就 ok |
|
lisongeeeSep 13, 2022
18
|
|
cowcomicSep 13, 2022
19
词表有多大?
如果词表很大,百以上,可以上一些 NLP 技术,比如 Trie 树,做词表扫描,再根据扫描结果分割 如果词表不大,几十以内,for 循环和正则都可以 |
|
fkdogSep 13, 2022
20
楼主问的是全文检索里用的分词,还是说希望将一个字符串按照指定关键词分割开来?
|
|
jinliming2Sep 14, 2022
21
<?php
$arr = preg_split("/(?<=^你关注的|有\\s)(?:\\B|\\b)|(?:\\B|\\b)(?=(?:有\\s\\d+)?\\s 个未看)/", "你关注的杨幂有 10 个未看"); print_r ($arr); $arr2 = preg_split("/(你关注的)(\S+)(有)\s*(\d+)\s*(个未看)/", "你关注的杨幂有 10 个未看", -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); print_r ($arr2); |
|
xupefeiSep 14, 2022
22
AC 自动机
|