正则表达式匹配除尾随空格之外的任何字符

时间:2012-05-26 11:07:26

标签: php regex preg-replace whitespace

我正在使用这个/\([^\S\n]*(.*)[^\S\n]*\)/正则表达式匹配括号内的内容,除非有尾随空格,否则它会很好用。

例如( test1 test2 )我想匹配test1 test2,但我匹配test1 test2_(我写下划线,但它是尾随空格)。

知道如何从匹配中删除此尾随空格吗?

我正在使用PHP preg_replace函数。

2 个答案:

答案 0 :(得分:1)

将表达式锚定到文本的末尾怎么样?

/\([^\S\n]*(.*)[^\S\n]*\)$/
                         ^

\)之后没有空格。

答案 1 :(得分:0)

试试这个

/\(\s*([^)]+?)\s*\)/

结果:

$reg = '/\(\s*([^)]+?)\s*\)/';

var_dump( preg_replace( $reg, '$1', "( test1 test2 )" ) );

//string(11) "test1 test2"