php regex find text within parenthesis -
using php or powershell need in finding text in text file.txt, within parenthesis output value.
example:
file.txt looks this:
this test (mytest: test) in parenthesis testing (mytest: johnsmith) again. not testing testing (mytest: 123) my code:
$content = file_get_contents('file.txt'); $needle="mytest" preg_match('~^(.*'.$needle.'.*)$~', $content, $line); output new text file be:
123test, johnsmith,123,
use pattern:
~\(%s:\s*(.*?)\)~s note %s here not part of actual pattern. it's used sprintf() substitute values passed arguments. %s stands string, %d signed integer etc.
explanation:
~- starting delimiter\(- match literal(%s- placeholder$needlevalue:- match literal:\s*- 0 or more whitespace characters(.*?)- match (and capture) inside parentheses\)- match literal)~- ending delimiters- pattern modifier makes.match newlines well
code:
$needle = 'mytest'; $pattern = sprintf('~\(%s:\s*(.*?)\)~s', preg_quote($needle, '~')); preg_match_all($pattern, $content, $matches); var_dump($matches[1]); output:
array(3) { [0]=> string(4) "test" [1]=> string(9) "johnsmith" [2]=> string(3) "123" }
Comments
Post a Comment