2013-04-18 130 views
0

我想匹配以某个字符开始的字符串的部件(星号):匹配子串

abc*DEFxyz =>*DEF

abc*DE*Fxyz =>*DE*F

试过preg_match_all('/[$\*A-Z]+/', $string, $matches);但它似乎没有工作。我得到*DE*F在第二个例子

回答

4

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

http://regexr.com?34itc

您正则表达式在这里:[$\*A-Z]+指含有*和A-Z字符的字符串,不提关于启动任何东西。

1

尝试:

^[^*]*\* 

它说 “从行开始,跳过所有非星号人物,并在第一站”

扩展这样的:

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

星号后面会返回字符串的其余部分。包括星号,调整这样

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

下面是检查你的正则表达式一个伟大的工具:http://gskinner.com/RegExr/

希望这有助于