gpt4 book ai didi

php - 正则表达式在php中分隔单词数字和符号

转载 作者:可可西里 更新时间:2023-11-01 00:57:58 25 4
gpt4 key购买 nike

我有以下示例字符串

Lot99. Is it 1+3 or 5 or 6.53

我想要下面的结果

["Lot99",".","Is","it","1","+","3","or","5","or","6.53"]

因此,结果消除空格,分隔单词,但如果单词和数字之间没有空格,则将它们放在一起,如果不在单词的开头或结尾,则将数字分隔开。分隔符号,如 +-.,!@#$%^&*();\/|<>但如果 2 个数字之间的小数点不存在,例如 2.2 应保持为 2.2

到目前为止我有这个正则表达式 /s+[a-zA-Z]+|\b(?=\W)/

我知道的不多,但我访问了很多网站来学习 RegEx,但我仍在努力了解这门语言。如果您的回答可以,请包括评论,以便我可以分解它并从中学习,这样我最终可以开始进一步修改它。

最佳答案

使用preg_match_all

preg_match_all('~(?:\d+(?:\.\d+)?|\w)+|[^\s\w]~', $str, $matches);

Regex101 Demo

解释:

  • (?:\d+(?:\.\d+)?|\w)+ 将匹配数字(float 或 int)或单词字符一次或多次匹配字符串像 foo99.9 , 88gg

  • | 或者

  • [^\s\w] 匹配非单词、非空格字符。

关于php - 正则表达式在php中分隔单词数字和符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35823872/

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