草庐IT

php - 在 PHP 中查找以美元符号 $ 开头和结尾的单词

我正在寻找并替换长字符串中的单词。我想找到开头看起来像这样的单词:$test$并将其替换为空。我已经尝试了很多东西,但无法弄清楚正则表达式。这是我最后一次尝试:preg_replace("/\b\\$(.*)\\$\b/im",'',$text);无论我做什么,我都无法用它来替换以美元符号开头和结尾的单词。 最佳答案 使用单引号代替双引号并删除双转义符。$text=preg_replace('/\$(.*?)\$/','',$text);还有一个单词边界\b不消耗任何字符,它断言一侧有一个单词字符,而另一侧没有。您需要删除单词边界才

php - 转换 MAC 地址格式

我刚刚写了一个小脚本来从交换机中提取数百个MAC地址进行比较,但是它们的格式为“0025.9073.3014”而不是标准的“00:25:90:73:30:14”。我对如何转换这个感到困惑,我能想到的最好的方法是在“。”处将它们分解成碎片,然后将它们进一步分解成2block,然后用“:”分隔符重新连接所有部分.我可以接受hacky方法,但这让我很困扰,因为这是一种非常糟糕的方法。有什么方法可以更好地执行此操作? 最佳答案 str_replace和preg_replace的组合:$str=preg_replace('~..(?!$)~'

php - 如何正则表达式(1.2.3)?

我需要在文档中搜索一些这种格式的文本:(#.#.#)ex;(1.4.6)尽管这看起来很简单,但它超出了我的正则表达式技能范围。 最佳答案 您可以使用以下正则表达式:\(\d{1,2}\.\d{1,2}\.\d{1,2}\)DEMO示例PHP:输出:Array([0]=>Array([0]=>(1.12.12)[1]=>(1.1.1)))如果你想可以有任意数量的数字(>0),使用下面的正则表达式:\(\d+\.\d+\.\d+\) 关于php-如何正则表达式(1.2.3)?,我们在Stac

PHP 匹配字符串模式并获取变量

我查找了一些引用资料,例如thisquestion和thisquestion但不知道我需要做什么。我想做的是:比如说,我有两个字符串:$str1="link/usa";$str2="link/{country}";现在我想检查这个模式是否匹配。如果它们匹配,我希望将国家/地区的值设置为美国。$country="usa";我也希望它能在以下情况下工作:$str1="link/usa/texas";$str2="link/{country}/{place}";也可能是整数。就像匹配每个大括号并为变量提供值一样。(而且,是的,如果可能的话,性能会更好)我无法解决问题,因为我对正则表达式还很陌

PHP Preg 匹配 - 获取包装值

我想使用预匹配提取所有换行的文本值所以background:url("images/gone.png");color:#333;...background:url("images/good.png");font-weight:bold;从上面的字符串,我要抢images/gone.pngimages/good.png正确的命令行是什么? 最佳答案 在php中,你应该这样做:$str=然后,你会看到这样的输出:array(2){[0]=>array(2){[0]=>string(22)"url("images/gone.png")"[

PHP Regex 替换方括号和方括号之间的文本

我有以下字符串:Welcome[firstname][lastname]我正在尝试使用preg_replace(),以便将[firstname]替换为Marcello,将[lastname]替换为Silvestri。我只能找到将文本放在括号内的方法,但我想自己替换括号。$string="Welcome[firstname][lastname]";$patterns=array();$patterns[0]='\[firstname\]';$patterns[1]='\[lastname\]';$replacements=array();$replacements[0]='Marcell

php - 使用 Regex 匹配函数体

给定一个虚拟函数:publicfunctionhandle(){if(isset($input['data']){switch($data){...}}else{switch($data){...}}}我的目的是获取该函数的内容,问题是匹配花括号{...}的嵌套模式。我遇到了recursivepatterns但无法理解与函数主体匹配的正则表达式。我已经尝试了以下(没有递归):$pattern="/function\shandle\([a-zA-Z0-9_\$\s,]+\)?".//match"functionhandle(...)"'[\n\s]?[\t\s]*'.//regardle

php - 正则表达式中带\b 的美元符号包含额外空间

我正在尝试想出一个正则表达式来匹配不是价格的数字。100-应该匹配$100-不应该匹配我试过[^\$]100但它得到了100之前的额外空间我正在尝试用其他字符串替换数字单词。“100”会变成“!”这很好用,除了我想忽略那些以$开头的“100美元”变成“$!”我不想这样,我希望100美元被忽略。有什么想法吗? 最佳答案 简单地尝试查找没有$前缀的数字,并用该前缀字符替换那些,然后是您想要的任何内容,!在你的例子中。$test_string="Thisisanumber100butthisisn't\$100.";$result=pre

PHP 货币正则表达式

我正试图找到一段匹配货币值的正则表达式。我只想匹配数字和1个小数点即允许10100100.00不允许字母字符100,00+/-100我已经搜索并尝试了很多但没有任何运气。希望大家多多指教 最佳答案 if(preg_match('/^[0-9]+(?:\.[0-9]+)?$/',$subject)){#Successfulmatch}else{#Matchattemptfailed}旁注:如果你想限制你想要的小数位数,你可以这样做:/^[0-9]+(?:\.[0-9]{1,3})?$/im所以100.000将匹配,而100.0001不

php - 正则表达式将 URL 转换为链接而不会弄乱文本中的现有链接

我正在尝试将一段文本中的URL转换为超链接-使用正则表达式。我已经设法实现了这一点,但问题是当文本中已经存在链接时所以blablablahwww.google.comblablahwww.google.com应该导致blablablahwww.google.comblablahwww.google.com不是blablablahwww.google.comblablahwww.google.com">www.google.com 最佳答案 终于完成了:functionadd_url_links($data){$data=preg_r