0

我想匹配以某个字符(星号)开头的字符串部分:

abc*DEFxyz =>*DEF

abc*DE*Fxyz=> *DE,*F

试过了preg_match_all('/[$\*A-Z]+/', $string, $matches);,但是好像不行。我*DE*F在第二个例子

4

2 回答 2

4

将您的正则表达式更改为: \*[A-Z]+

http://regexr.com?34itc

您的正则表达式:[$\*A-Z]+ 表示包含*和 AZ 字符的字符串,没有提及有关 start 的任何内容。

于 2013-04-18T11:59:13.510 回答
1

尝试:

^[^*]*\*

上面写着“从行首,跳过所有非星号字符并停在第一个”

扩展这个:

s/^[^*]*\*(.*)/

将返回星号之后的字符串的其余部分。要包括星号,请像这样调整

s/^[^*]*(\*.*)/

这是检查正则表达式的好工具:http: //gskinner.com/RegExr/

希望这可以帮助

于 2013-04-18T12:09:09.263 回答