Regular Expression matching with start tag and closing tag as a new line
I've been producing a letter compilation system (to save people time after a questionaire has been filled in) and near the end of the project we've found a bug. Long story short it would take many hours to fix without this regular expression - which is why I'm asking for your fine help!
We have some text that contains the following...
"<k>This is the start of the pa开发者_JAVA技巧ragraph
This is some more of the paragraph.
And some more";
I basically need a regular expression that can search for the opening tag, "<k>
", and also the first new line it comes across "\r\n"? and then insert the contents into a variable I can then use (with the <k>
removed but the new line codes, "\r\n", left in place).
I'm using PHP and the text (like the example above) is stored in MySQL.
Please help!
I promise I'll learn these properly after I've fixed this bug! :)
If you are using 5.3 you can make some use of closures like this:
$text = "<k>This is the start of the paragraph
This is some more of the paragraph.
And some more";
$matches = array();
$text = preg_replace_callback('/<k>(.*)$/m', function($match) use (&$matches){
$matches[] = $match[1];
}, $text);
var_dump($text,$matches);
Output is:
string '
This is some more of the paragraph.
And some more' (length=52)
array
0 => string 'This is the start of the paragraph' (length=34)
I'm assuming there could be multiple <k>
tags in the text, and therefore, I put all the text that follows the tag into an array called matches.
As a further example... with the following input:
$text = "<k>This is the start of the paragraph
Line 2 doesn't have a tag...
This is some more <k>of the paragraph.
Line 4 doesn't have a tag...
<k>And some more";
The output is:
string '
Line 2 doesn't have a tag...
This is some more
Line 4 doesn't have a tag...
' (length=78)
array
0 => string 'This is the start of the paragraph' (length=34)
1 => string 'of the paragraph.' (length=17)
2 => string 'And some more' (length=13)
/^<k>(\w*\s+)$/
would probably work.
精彩评论