是否可以添加一个包含 IF 找到的单词的“过滤器”,正则表达式不会拆分单词? - 哇,我希望我的英语说得通:)
让我说明一下..
这是我当前用于拆分字符串的正则表达式,例如:TheStringIsSItTING Together
$taglist=preg_replace('/([a-z])([A-Z])/','$1 $2', $taglist);
使用正则表达式生成的示例字符串:The String Is SIt TING
我想要一个过滤器,我可以在其中放入 SItTING,这样正则表达式就不会拆分那个词。
如果我的解释不够好,请告诉我,我还在和我的英语作斗争:)
哦,感谢一个很棒的社区!!
最佳答案
如果不使用 lookaround assertions 手动拆分单词,您无法真正检查自己是否处于单词中间。正如@stema 所做的那样。要获得排除列表,您必须以编程方式进行更多操作。
$taglist = 'TheStringIsNowCurrentlySItTING';
$excludeList = array(
'SItTING',
'StringIs',
);
$exclusions = implode('|', $excludeList);
$tagArr = preg_split("/($exclusions)/", $taglist, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach ($tagArr as &$token) {
if (!in_array($token, $excludeList)) {
$token = preg_replace('/([a-z])([A-Z])/', '$1 $2', $token);
}
}
$taglist = implode(' ', $tagArr);
- 根据您的排除条款将其拆分。
- 仅在未排除的条款中放置空格。
- 用空格将所有内容粘在一起。
关于php 正则表达式(过滤器?)不应使用正则表达式的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095107/