gpt4 book ai didi

php - 拆分包含字母和数字的字符串,不由 PHP 中的任何特定定界符分隔

转载 作者:可可西里 更新时间:2023-11-01 13:47:57 24 4
gpt4 key购买 nike

目前我正在开发一个网络应用程序来获取 Twitter 流并尝试自己创建一个自然语言处理。

由于我的数据来自 Twitter(限制为 140 个字符),所以有很多单词被缩短了,或者在这种情况下,省略了空格

例如:

"Hi, my name is Bob. I m 19yo and 170cm tall"

应该标记为:

- hi
- my
- name
- bob
- i
- 19
- yo
- 170
- cm
- tall

请注意,19yo 中的 19yo 之间没有空格。我主要用它来提取带有单位的数字。

简单地说,我需要的是一种通过没有定界符的数字或字母 block 来“分解”每个包含数字的标记的方法。

'123abc' 将是 ['123', 'abc']

'abc123' 将是 ['abc', '123']

'abc123xyz' 将是 ['abc', '123', 'xyz']

等等。

在 PHP 中实现它的最佳方法是什么?


我找到了一些接近它的东西,但它是 C# 并且专门用于日/月拆分。 How do I split a string in C# based on letters and numbers

最佳答案

您可以使用 preg_split

$string = "Hi, my name is Bob. I m 19yo and 170cm tall";
$parts = preg_split("/(,?\s+)|((?<=[a-z])(?=\d))|((?<=\d)(?=[a-z]))/i", $string);
var_dump ($parts);

当匹配数字字母边界时,正则表达式匹配必须是零宽度的。字符本身不能包含在匹配中。为此 zero-width lookarounds很有用。

http://codepad.org/i4Y6r6VS

关于php - 拆分包含字母和数字的字符串,不由 PHP 中的任何特定定界符分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10180730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com