我想匹配以某个字符(星号)开头的字符串部分:
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/
希望这可以帮助