Php 简单正则表达式不是
我正在寻找一种只在一个Php 简单正则表达式不是,php,regex,Php,Regex,我正在寻找一种只在一个preg\u replace $url = "stackoverflow"; if(!preg_match('/apple/',$url)){ $url = $url.".apple.com"; } ps:修饰符是可能有用 (?:)*生成非捕获模式。它匹配零个或多个(?!apple)实例。除了apple和$0之外,它告诉我们在匹配模式时获取整个字符串。上面建议的示例不一样,因为当字符串不是以appleas开头时,它将匹配任何内容?!apple条件仅在字符串
preg\u replace
$url = "stackoverflow";
if(!preg_match('/apple/',$url)){
$url = $url.".apple.com";
}
ps:修饰符是
可能有用
(?:)*
生成非捕获模式。它匹配零个或多个(?!apple)
实例。除了apple
和$0
之外,它告诉我们在匹配模式时获取整个字符串。上面建议的示例不一样,因为当字符串不是以apple
as开头时,它将匹配任何内容?!apple
条件仅在字符串开头应用一次。您想实现什么?你想要像stackoverflow.com.apple.com
这样的url吗?让我们假设url=“stackoverflow”没有TLDErr。你的问题没有真正的意义。绳子总是以苹果结尾吗?如果没有,那么您就不能使用正则表达式来追加字符串。因此,基本上,您希望任何尚未包含单词apple的$url现在都追加“.apple.com”?是的!!为什么这么疯狂?lololookahead可以放在(.)*
括号之外(因为匹配被锚定),防止不必要的字符串扫描:'/^(?!apple)。*$/i
@mathematic.coffee请尝试您的regexp-它不会正常工作requested@Josh(?:)*生成非捕获模式。它匹配零个或多个(?苹果)实例。这是除了苹果之外的任何东西,$0告诉我们在匹配模式时获取整个字符串。上面建议的示例不同,因为当字符串不以apple
as开头时,它将匹配任何内容?!apple条件仅在字符串开头应用一次。
$str = 'something';
echo preg_replace('/^(?:(?!apple).)*$/is', '$0.apple.com', $str);