我需要尝试去掉一个文本文件匹配的模式是这样说行:正则表达式剥离一些线条勾勒出一个文本文件
anything SEARCHTEXT;anything;anything
其中SEARCHTEXT将永远是一个静态值每行以换行符结束。有什么机会可以帮助这个regext吗?或者给我一些关于从哪里开始的想法(自从我看了正则表达式以来已经很多年了)。
我打算使用PHP的preg_replace函数()这一点。
谢谢。
我需要尝试去掉一个文本文件匹配的模式是这样说行:正则表达式剥离一些线条勾勒出一个文本文件
anything SEARCHTEXT;anything;anything
其中SEARCHTEXT将永远是一个静态值每行以换行符结束。有什么机会可以帮助这个regext吗?或者给我一些关于从哪里开始的想法(自从我看了正则表达式以来已经很多年了)。
我打算使用PHP的preg_replace函数()这一点。
谢谢。
该解决方案将删除$text
包含的子串SEARCHTEXT
所有行:
$text = preg_replace('/^.*?SEARCHTEXT.*\n?/m', '', $text);
我的基准测试表明,该解决方案比'/\n?.*SEARCHTEXT.*$/m'
快10倍以上(而这一次能够正确地处理第一行匹配,第二行不匹配的情况)。
使用正则表达式的整条生产线相匹配,像这样:
^.*SEARCHTEXT.*$
preg_replace
将是一个很好的选择。
$str = preg_replace('/\n?.*SEARCHTEXT.*$/m', '', $str);
的\n
逃逸匹配行的换行符相匹配。这样匹配的行被删除,替换方法不会在字符串中留下空行。
/m
标志使插入符号(^
)匹配每行的开头而不是字符串的开头。
在`^。* SEARCHTEXT;。*;。* $`上启用多行和匹配规定SEARCHTEXT不包含对RegEx有意义的字符... – 2011-04-15 14:28:01