PHP Regex, который соответствует всему после определенного символа и заканчивается новой строкой

У меня есть проблемы с выполнением этого регулярного выражения, чтобы получить все после определенного символа (* в данном случае) и заканчивается новой строкой в ​​PHP.

У меня есть:

texttextext
*Sometext
*othertext

texttextex

я хочу получить "* Sometext и "* othertext" и добавить к ним <b></b>.

Уже пробовал с

$a = array( 
      "/\*(.*?)\n/is"
   ); 
   $b = array( 
      "<b>$1</b>"
   );
   $texto = preg_replace($a, $b, $texto); 

Но это не работает. Что я делаю неправильно?


person Homeroe    schedule 29.08.2011    source источник
comment
Итак, вы хотите добавлять тег ‹b› каждый раз, когда у вас есть * перед каждой строкой, и выделять всю строку жирным шрифтом?   -  person Book Of Zeus    schedule 29.08.2011
comment
Попробуйте загрузить Regex Coach.   -  person Kerry Jones    schedule 29.08.2011


Ответы (1)


"/^\*(.*?)\n/im"

Вам просто нужно добавить ^, чтобы соответствовать началу строки. Для этого требуется многострочный флаг /m.

Однако флаг /s здесь был неправильным, так как он позволял .* также совпадать с разрывами строк, что вам не нужно.

person mario    schedule 29.08.2011
comment
Последний вопрос. Кажется, он работает с символом *, но не работает, если я использую символ › - person Homeroe; 29.08.2011
comment
Точно сказать не могу. Можете ли вы показать полное регулярное выражение, которое вы пробовали? (> не является метасимволом и должен работать как есть) - person mario; 29.08.2011
comment
Также проверьте stackoverflow.com/questions/89718/ и stackoverflow.com/questions/2491930/ для проверки некоторых инструментов. - person mario; 29.08.2011