php 正则表达式(过滤器?)不应使用正则表达式的地方

标签 php regex

是否可以添加一个包含 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);
  1. 根据您的排除条款将其拆分。
  2. 仅在未排除的条款中放置空格。
  3. 用空格将所有内容粘在一起。

关于php 正则表达式(过滤器?)不应使用正则表达式的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095107/

相关文章:

php - 数据未从表单插入数据库

php - 如何防止php/mysql中记录的多次更新

javascript - 如何使用 '&' 或 '?' 作为第一个字符进行正则表达式调用

javascript - Javascript 函数中的 PHP (PCRE) 验证

php - MYSQL语法错误1064

php - 回显后在 PHP 中输​​出 Excel 文件

php - CollectionType 中的 EntityType : Get current object inside query_builder

java正则表达式

java - 我需要 Java 和 Javascript 的特定正则表达式模式

python - 从字符串中提取温度度数(摄氏度或华氏度)