【问题标题】:regex with preg_match anything and all line breaks正则表达式与 preg_match 任何东西和所有换行符
【发布时间】:2015-02-20 23:11:10
【问题描述】:

我不太擅长正则表达式,似乎找不到答案

我正在编写一个类文件来检查数据类型并“部分/最好地清理”任何提交的数据以及执行一些其他功能。这适用于所有数据类型(即电子邮件、url 的电话号码、int/signed/un-signed、单词、密码、各种日期格式、基本 HTML 等)

我在尝试匹配“任何东西”时遇到问题*(这是我真正不需要检查的一种数据类型,但为了保持一致性,我需要它运行 preg_match,但总是希望它返回 true) .

  • 当我说“任何内容”时,我希望它匹配任何文本、数字、符号和换行符。这是我遇到问题的换行符

我正在使用:

define('REG_TEXT', '/^(.*)$/');
preg_match(REG_TEXT, $data)

这在第一段上运行良好,但不会匹配任何线喙,因此返回 false

我希望它匹配(返回 true)的一个示例是:

this is a test match on anything 345 +_)(*&^%$£"!<br><html> <?php echo this i PHP;  ?>

and match this too on a new line

and match all this line too

and anything else at all

我现在并不担心任何代码输入到数据中,因为我班的其他领域正在处理这个问题(在这个阶段之前!)。

基本上,我在使用一个正则表达式,它绝对匹配/返回 true。 (我不想更改为 preg_match_all,因为这会破坏类的其他方面,或者需要我添加额外的代码,这些代码将部分重复我认为不需要的代码)

欢迎任何建议!

谢谢 乔恩

【问题讨论】:

  • 应该总是匹配?如果您不需要匹配项,preg_match('//', $data) 呢:)
  • @Jonny5 确实有效的剂量...我一直在使用 regex101,它在那里什么也没做,但从未在 php 中尝试过 :-( 谢谢
  • 是的try it in php :)
  • @Jonny5 是的,我知道总是匹配似乎很愚蠢,但这只是为了保持一致性并节省编写单独的函数,我不需要检查数据类型(其他数据类型当然需要匹配)
  • @Jonny5 你是对的(虽然你知道这一点)它在 php 中工作......为什么我不只是尝试这个...... regex101 说它不匹配任何东西:-(跨度>

标签: php regex preg-match


【解决方案1】:

用途:

'/^(.*)$/ms'

您需要在此处使用 ms 修饰符。 http://php.net/manual/en/reference.pcre.pattern.modifiers.php

【讨论】:

  • 非常感谢,如此简单却让我烦恼了好几个小时(我把 /m 放在了收盘价之前提到的 /m 上)。再次感谢!
猜你喜欢
  • 2022-06-15
  • 2020-10-13
  • 1970-01-01
  • 2016-03-04
  • 2013-08-21
  • 2012-01-15
  • 1970-01-01
  • 2014-04-27
相关资源
最近更新 更多