![](/img/trans.png)
[英]How to remove a string between the specific characters using regular expression in PHP?
[英]PHP Regular Expression select between characters or to end of string
我已经在这个问题上工作了几天,它开始让我发疯。 我很喜欢使用正则表达式,但是这一件事似乎正在使我逃避现实。
我需要在一组字符之间匹配一个字符串(如果存在的话),否则它应该与该行的末尾匹配。
例如:我只是想从以下示例中获取“内容”:
$str1="title:content @description"
$str2="title:content"
preg_match("/:(.*?)[(@)|(:)|(\*)]?$/",$str1,$content);
preg_match("/:(.*?)[(@)|(:)|(\*)]?$/",$str2,$content);
$ str1输出:“ content @description”
$ str2输出:“内容”
注意:字符串的顺序可能不同,也可能没有特殊字符(@ 、:或*),或者它们可能有一个特殊字符,因此除了“行尾”外没有其他“字符串结尾”字符会很常见”。
我已经尝试过我可以想到的每种组合,以使整个“或”陈述成为条件,并阅读大量类似但不完全相同的问题。
你可以写:
preg_match("/:(.*?)(?:[@:*]|$)/", $str1, $content);
(请注意,匹配使用|
结束于@:*
或字符串结尾之一),您的版本具有[@:*]
可选,但使字符串结尾为必选。)
或者简单地:
preg_match("/:([^@:*]*)/", $str1, $content);
(表示“冒号,后跟零个或多个@:*
字符”)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.