我想匹配以某个字符(星号)开头的字符串部分:
abc*DEFxyz =>*DEF
abc*DE*Fxyz=> *DE,*F
试过了preg_match_all('/[$\*A-Z]+/', $string, $matches);,但是好像不行。我*DE*F在第二个例子
将您的正则表达式更改为:
\*[A-Z]+
您的正则表达式:[$\*A-Z]+ 表示包含*和 AZ 字符的字符串,没有提及有关 start 的任何内容。
尝试:
^[^*]*\*
上面写着“从行首,跳过所有非星号字符并停在第一个”
扩展这个:
s/^[^*]*\*(.*)/
将返回星号之后的字符串的其余部分。要包括星号,请像这样调整
s/^[^*]*(\*.*)/
这是检查正则表达式的好工具:http: //gskinner.com/RegExr/
希望这可以帮助