I confess that if it were not the example of how the string should get after being captured and cleaned would have been almost impossible to answer.
And these "placeholders" [...] made it even harder.
Well, first you have to find all of the text, up to endpoint:
preg_match( '/<p>(.*?\.).*?<\/p>/', $string, $text );
If you find this paragraph, the variable $ text will have two indexes: In the first all that was married and in the second only what is inside the <p>
.
Captured, you clean:
preg_replace( '/\s\(.*?\)/', '', $text[ 1 ] );
Cleaning is done by finding a space, followed by an opening-bracket, with anything inside and a closing-bracket.
Located this fragment, it is all removed and resulting astring:
Ola meu nome é pseudomatica, etc.
The complete code:
$string = '<div></div>
[........]
<p>Ola meu nome é pseudomatica (sou normal), etc. Meu nome é assim pq sim</p>
<p></p>
[........]';
if( preg_match( '/<p>(.*?\.).*?<\/p>/', $string, $text ) != 0 ) {
echo preg_replace( '/\s\(.*?\)/', '', $text[ 1 ] );
}