正则表达式在字符以另一个可选字符结尾并且不匹配后获取字符串

时间:2011-05-09 17:22:26

标签: php regex

我正在努力使用正则表达式,这是输入字符串的示例

测试#字符串= VAL

我需要得到“字符串”,不管它里面是什么(包括特殊的charso,但显然不包括'=')它总是以'#'字符开头,但我不需要它。它前面的单词(在这种情况下为'test')也是可选的。

'='是可选的,但是如果它在那里我需要它被忽略。我一直在使用这样的东西

#([\w\W]*)

但我无法设法处理可选的'='

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

#([^=]*)

这与#之后的任何=匹配。是否实际存在=跟随无关紧要。

答案 1 :(得分:1)

您没有指定哪种语言。在php中你可以这样做:

<?php
preg_match('~#(([^=#]*))~', $str, $m );
var_dump($m[1]); // $m[1] is your string here
?>

答案 2 :(得分:0)

在这种情况下,我认为如果您使用更简单的函数(例如explode(,'#')和/或strpos)会更好。

建议他们使用像这样的简单字符串操作