Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果有前导号码,请删除括号内的号码_Php_Regex - Fatal编程技术网

Php 如果有前导号码,请删除括号内的号码

Php 如果有前导号码,请删除括号内的号码,php,regex,Php,Regex,我有多种类型的字符串。如果是数字文本(text)我想删除括号内的内容。否则就不行了 这将删除括号内的所有内容 /\((.*?)\)/ 如何检查前导号码?\d匹配任何数字。还有一个比使用不发音的重复更好的方法: /\d\s*\(([^)]*)\)/ 如果空间是强制性的,请使用: /\d\s+\(([^)]*)\)/ 如果您不想在a1(文本)的情况下进行匹配,请使用: /\b\d+\s*\(([^)]*)\)/ 对于删除,可能更容易匹配括号周围的内容(我使用第一个正则表达式作为示例,但这可以

我有多种类型的字符串。如果是
数字文本(text)
我想删除括号内的内容。否则就不行了

这将删除括号内的所有内容

/\((.*?)\)/

如何检查前导号码?

\d
匹配任何数字。还有一个比使用不发音的重复更好的方法:

/\d\s*\(([^)]*)\)/
如果空间是强制性的,请使用:

/\d\s+\(([^)]*)\)/
如果您不想在
a1(文本)
的情况下进行匹配,请使用:

/\b\d+\s*\(([^)]*)\)/
对于删除,可能更容易匹配括号周围的内容(我使用第一个正则表达式作为示例,但这可以应用于所有三种情况):

对于第一种情况(如果
a1(text)
中的
text
也应删除),并且如果将空格数量限制为一个,还可以使用稍微高效的变体,使用lookback:

$str = preg_replace('/(?<=\d\s)\([^)]*\)/', '()', $str);

$str=preg\u replace('/(?
\d
匹配任何数字。并且有一个比使用ungreedy重复更好的方法:

/\d\s*\(([^)]*)\)/
如果空间是强制性的,请使用:

/\d\s+\(([^)]*)\)/
如果您不想在
a1(文本)
的情况下进行匹配,请使用:

/\b\d+\s*\(([^)]*)\)/
对于删除,可能更容易匹配括号周围的内容(我使用第一个正则表达式作为示例,但这可以应用于所有三种情况):

对于第一种情况(如果
a1(text)
中的
text
也应删除),并且如果将空格数量限制为一个,还可以使用稍微高效的变体,使用lookback:

$str = preg_replace('/(?<=\d\s)\([^)]*\)/', '()', $str);
$str=preg_replace('/(?使用此正则表达式

(\d[^\(\)]*?\().*?(\))
    ^           ^   ^
    |           |   |->2nd group matches )
    |           |->matches content within ()
    |->1st group would match a digit followed by 0 to many characters(except ())followed by (
并将其替换为

$1$2
使用这个正则表达式

(\d[^\(\)]*?\().*?(\))
    ^           ^   ^
    |           |   |->2nd group matches )
    |           |->matches content within ()
    |->1st group would match a digit followed by 0 to many characters(except ())followed by (
并将其替换为

$1$2
配合

$s = preg_replace('/(?<=\d)\s*\([^)]*\)/', '', $s);
$s=preg_replace('/(?随附

$s = preg_replace('/(?<=\d)\s*\([^)]*\)/', '', $s);

$s=preg_replace(“/”?如果没有前导号,是否要删除括号内的数字否。如果有前导号,我要删除文本(包含数字)括号内。否则,括号内的内容必须保持不变。如果没有前导号,是否要删除括号内的数字否。如果有前导号,我要删除括号内的文本(包含数字)。否则,括号内的内容必须保持不变。变长查找
(?可变长度查找
)(?如果格式是
数字文本(文本)
,例如
2公里(17:00)
?谢谢,太棒了!你能推荐一些好的源代码来学习正则表达式吗?如果格式是
数字文本(文本)
,例如
2公里(17:00)怎么办
?谢谢,太棒了!你能推荐一些好的资源来学习正则表达式吗?