草庐IT

php - 正则表达式从字符串中获取货币和金额

我有一个正则表达式preg_match('/(?它以货币形式返回我的金额,但我正在尝试获取与该金额相关联的符号。1)例如字符串是$300.00askingprice应该返回$300.00但现在它返回3002)例如字符串是EUR300.00应该返回EUR300.00但现在返回300只是我想要有金额的货币。谢谢 最佳答案 首先,您匹配可以是$或EUR的货币,后跟可选的空格:(?:EUR|[$])\s*然后,匹配主要数字组,后跟可选句点和两位数字:\d+(?:\.\d{2})?我们总共得到了这个:$pattern='/(?:EUR|[$]

php - 如何从 preg_split 结果中删除空数组?

举个例子,我写了很多简单的正则表达式:php>var_dump(preg_split('/[:reg\s{}]+/',':reg{/^[a-zA-Z]*$/}'));array(3){[0]=>string(0)""[1]=>string(13)"/^[a-zA-Z]*$/"[2]=>string(0)""}我想删除空数组[0]=>string(0)""例如,结果应该是:php>var_dump(preg_split('????',':reg{/^[a-zA-Z]*$/}'));array(3){[0]=>string(13)"/^[a-zA-Z]*$/"}我知道删除空数组时array

php - dd/mm/yyyy 的正确正则表达式日期模式

我需要更新同一行,它还包括dd/mm/yyyy格式的日期以及一组文件中的一些字符串。我已经在此处检查了类似问题的答案,但是无法使任何建议的模式在我的代码中运行。我当前的PHP代码是:当我在命令提示符下运行这段代码时,它没有给出任何错误消息,而且似乎运行正常。但是一旦它完成并且我检查了我的文件,我发现每个文件的内容都被删除了,它们都变成了0KB文件,里面没有任何内容。 最佳答案 您没有为正则表达式设置定界符。分隔符可以是任何(非字母数字、非反斜杠、非空白)字符。除了/之外,你还想使用定界符,这样你就不必对已经在你的模式中的/进行转义。

php - 未注释的 html 标记的正则表达式

我需要找到所有html中未注释的标记。例如,在html中:我需要一个匹配的正则表达式但不匹配因为它被包围着.我可以找到所有具有以下正则表达式的标签//m,但它也匹配那些被评论的,但我只需要那些没有被评论的。提前感谢您的帮助! 最佳答案 你应该使用DOMDocument类而不是正则表达式来解析HTML。检查this.';$dom=newDOMDocument;$dom->loadHTML($html);foreach($dom->getElementsByTagName('link')as$tag){echo$tag->getAttr

php - preg_replace 正则表达式不输出任何内容

$str='{author}{content}';$pattern='/\{([a-z_0-9]+)\}/i';$subst=array('author'=>'Mr.Google','id'=>'1239124587123','content'=>'Thisissomesimpletext');$str=preg_replace($pattern,$subst['$1'],$str);echo$str;{text}的每个实例结果都是“”是我在捕获组上做错了什么吗?我用preg_match_all完成了此操作,它返回为{author}和author这是这里的问题吗?

php - 固定长度的正则表达式后视提示可变长度的后视

这是我要运行的代码:$str='a,b,c,d';returnpreg_split('/(?如您所见,这里使用的正则表达式是:/(?这是一个简单的固定长度负向后视,用于“前面是不是反斜杠的东西,然后是反斜杠的东西!”。这个正则表达式在http://www.phpliveregex.com上工作得很好但是当我去实际尝试运行上面的代码时,我被吐出错误:Warning:preg_split()[function.preg-split]:Compilationfailed:lookbehindassertionisnotfixedlengthatoffset13更糟糕的是,一位程序员同事在他的

php - 使用正则表达式以任意顺序匹配多个单词

这个问题在这里已经有了答案:Regextomatchstringcontainingtwonamesinanyorder(9个回答)关闭8年前。好吧,假设我想在一个句子中匹配3个单词......但我需要以任何顺序匹配它们,例如:$sentences=Array("onetwothreefourfivesixseveneightnineten","tennineeightsevensixfivefourthreetwoone","onethreefivesevennineten","twofoursixeightten","twotenfoursixone",);所以我需要匹配单词“二”

php - 使用 PHP 正则表达式部分隐藏电子邮件地址

这个问题在这里已经有了答案:PartiallyhideemailaddressinPHP(18个答案)关闭7年前。我发现了两个主题,乍一看似乎可以回答我的问题,但它们似乎只能让我部分找到解决方案。使用它们我已经到了我所在的地方。所以它不是重复的!我想用星号替换电子邮件地址的名称部分和域部分中除第一个字符以外的所有字符:例如g******@g****.comorg******@g****.co.uk代码:$email2=preg_replace('/(?几乎就在那里,但给了我g******@g*.com而不是g******@g*****.com有人可以帮我处理正则表达式吗?

php - 正则表达式的较短方式

这必须仅匹配这些数字:110、220、330、440、550、660、770、880、990(不包括000)。这个正则表达式(pcre)有更短的方法吗?/^(1{2}|2{2}|3{2}|4{2}|5{2}|6{2}|7{2}|8{2}|9{2})0$/ 最佳答案 您可以使用:/\b([1-9])\g{1}0\b/RegExDemo正则表达式的分解:\b#wordboundary[1-9]#matchdigit1-9andgroupthemascapturedgroup#1\g{1}#back-referencetogroup#10

php - 如何完全替换 PHP 中的所有特殊字符而不在结果中留下任何 HTML 实体

我需要有关我尝试创建的PHP替换函数的帮助。基本上,我想FYLLY转换所有特殊字符,如á、é、í、ó、ú、ü、ñ、Á、É、Í、Ó、Ú、Ü、Ñ等对此:a,e,i,o,u,u,n,A,E,I,O,U,U,N。下面解释了为什么我说“完全转换”。现在我只设法使用以下函数完成了一半:functionclean_url($text){$text=preg_replace('~&([a-z]{1,10})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i','$1',htmlentities($text,ENT_QUOTES,'UT