Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 e> 使用前,无需nl2br。你应该像Michael Mrozek建议的那样在mysql中这样做,但我之所以使用正则表达式,是因为regex是在实际问题中。是的!!!!谢谢你!仅供参考,这是我(现在)的工作代码:$text=$password\u dirt_Php_Regex_Preg Match - Fatal编程技术网

Php e> 使用前,无需nl2br。你应该像Michael Mrozek建议的那样在mysql中这样做,但我之所以使用正则表达式,是因为regex是在实际问题中。是的!!!!谢谢你!仅供参考,这是我(现在)的工作代码:$text=$password\u dirt

Php e> 使用前,无需nl2br。你应该像Michael Mrozek建议的那样在mysql中这样做,但我之所以使用正则表达式,是因为regex是在实际问题中。是的!!!!谢谢你!仅供参考,这是我(现在)的工作代码:$text=$password\u dirt,php,regex,preg-match,Php,Regex,Preg Match,e> 使用前,无需nl2br。你应该像Michael Mrozek建议的那样在mysql中这样做,但我之所以使用正则表达式,是因为regex是在实际问题中。是的!!!!谢谢你!仅供参考,这是我(现在)的工作代码:$text=$password\u dirty$匹配=数组()$count=preg_match('/PASSWORD\s=\s(?P[^\n]+)?\n/msU',$text,$match)$clean_password=$match[1];那个正则表达式里有很多超重行李。捕获组之后的


e> 使用前,无需nl2br。你应该像Michael Mrozek建议的那样在mysql中这样做,但我之所以使用正则表达式,是因为
regex
是在实际问题中。是的!!!!谢谢你!仅供参考,这是我(现在)的工作代码:$text=$password\u dirty$匹配=数组()$count=preg_match('/PASSWORD\s=\s(?P[^\n]+)?\n/msU',$text,$match)$clean_password=$match[1];那个正则表达式里有很多超重行李。捕获组之后的
使其成为可选的,我在需求中没有看到这一点。
m
修饰符更改锚定、
^
$
的含义,但您不使用它们。类似地,
s
更改了
的含义,但您也没有使用它。默认情况下,
U
使量词不贪婪,这在本例中没有帮助。在任何情况下都应避免使用
U
修饰符;它本应使正则表达式更具可读性,但总的来说,它具有相反的效果。。。根据问题,文本
密码的匹配应锚定到主题字符串的开头。
\s
匹配的字符多于空格字符。命名的捕获组是完全多余的,可能会影响正在执行的简单任务,特别是对于不熟悉其使用的人。如果删除了不必要的
s
修饰符,则匹配的非换行字符后跟新行也可能被替换为
+
。@Alan Moore:从技术上讲,您是正确的。然而,我选择使用/msU来保持我的所有正则表达式的一致性,并减少编写它们时出错的可能性(最重要的是让其他人读取它们)@salathe:spec没有说明所有密码都将出现在文本的开头。用户在使用前应检查
isset($match['PASSWORD'])
。曾考虑在查询时尝试此操作,但希望将DB调用保持在最小值。@Nick应该是相同数量的查询,您可以选择“字段”或“密码”(或两者都选择,但仍然是一个查询)啊哈,的确如此,但我们的主查询中已经有了吸引其他信息的数据。曾考虑在查询时尝试此操作,但希望尽量减少DB调用。@Nick应该是相同数量的查询,您可以选择“字段”或“密码”(或两者都选择,但仍然是一个查询)啊哈,确实如此,但我们的主查询中已经有了提取其他信息的数据
PASSWORD = dsl3£$Roid
dfdfdf
fgdgfdfg
fgdfgdfg
dfgdfg
dfgdfgdfg
PASSWORD = dsl3£$Roid<br>
dfdfdf<br>
fgdgfdfg<br>
fgdfgdfg<br>
dfgdfg<br>
dfgdfgdfg<br>
$string = ...;
preg_match('/^PASSWORD = (.*)$/m', $string, $matches);
preg_match('/^PASSWORD = (.*)/', $string, $matches);
SELECT SUBSTR(field, LOCATE('= ', field) + 2, LOCATE('\n', field) - LOCATE('= ', field) - 2) AS password FROM table;
CREATE VIEW table2 AS SELECT *, SUBSTR(field, LOCATE('= ', field) + 2, LOCATE('\n', field) - LOCATE('= ', field) - 2) AS password FROM table;
$text = YOUR_BLOB_HERE;

$match = array();
$count = preg_match('/PASSWORD\s=\s(?P<PASSWORD>[^\n]+)?\n/msU', $text, $match);

print_r($match);

/*  output:

Array
(
    [0] => PASSWORD = dsl3£$Roid

    [PASSWORD] => dsl3£$Roid
    [1] => dsl3£$Roid
)

*/
$match = array();
preg_match('/PASSWORD\s=\s(?P<PASSWORD>[^\n]+)?\n/msU', $password_dirty, $match);
$password = $match[1];