是否可以制定一条规则,以一次性删除同时用[]()和{}括起来的字符串的任何部分,而只保留其中的任何部分?
例如,如果我有这样的字符串:
// Input
$string = 'my(apple)[banana][carrot(orange)]food[supply]';
// Output
$string = 'myfood';
我知道如何选择用方括号括起来的字符串的某些部分,但是在这种情况下,我想选择任何未用括号括起来的部分。
这是我当前卡住的正则表达式,可以选择其中的字符:
\[.*?\]|\(.*?\)|\{.*?\}
答案 0 :(得分:0)
这是解决此问题的方法,
Public Shared Function FindFocusedControl(control As Control) As Control
Dim container = TryCast(control,IContainerControl)
While container IsNot Nothing
control = container.ActiveControl
container = TryCast(control, IContainerControl)
End While
Return control
End Function
这里在工作demo。
答案 1 :(得分:0)
我找到了答案:
$var = 'my(apple)[banana][carrot(orange)]food[supply]';
echo preg_replace('/\[.*?\]|\(.*?\)|\{.*?\}/', '', $var);