0
A
回答
3
什么是这样的:
$str = <<<STR
{{Title|Open
Bla-bla-bla
}}
STR;
$matches = array();
if (preg_match("/^\{\{([^\|]+)\|([^\n]+)(.*)\}\}$/s", $str, $matches)) {
var_dump($matches);
}
它会让你:
array
0 => string '{{Title|Open
Bla-bla-bla
}}' (length=28)
1 => string 'Title' (length=5)
2 => string 'Open' (length=4)
3 => string '
Bla-bla-bla
' (length=14)
这意味着,$matches[1]
,$matches[2]
和$matches[3]
使用trim
后,你会得到什么你问:-)
解释正则表达式:
- 从字符串的开头匹配:
^
- 2个
{
字符,不得不进行转义,因为他们有特殊的含义 - 东西,这不是一个|,至少一次:
[^\|]+
- - 作为结果返回
|
必须得逃脱的第一部分。
()
所以它的捕获之间 - a
|
字符 - 必须逃脱。 - 什么,这不是一个断行,至少一次:
[^\n]+
()
所以之间它捕获太 - 结果
.*
几乎“任何东西”任何数量的次 的第二部分()
所以之间它捕获太 - 结果
的第三部分
- ,最后两
}
(逃了出来,太) - 和字符串的结束:
$
,并注意正则表达式有s
(DOTALL)改性剂;关于这个,请参见Pattern Modifiers。
3
$string = "{{Title|Open
Bla-bla-bla
}}";
preg_match('/^\{\{([^|]+)\|(.*?)[\r\n]+(.*?)\s*\}\}/', $string, $matches);
print_r($matches);
1
http://www.gskinner.com/RegExr/
一个有用的地方玩耍和学习正则表达式。
0
在Perl:
/\{\{ # literal opening braces
(.*?) # some characters except new line (lazy, i. e. as less as possible)
\| # literal pipe
(.*?) # same as 2 lines above
\n # new line
([\s\S]*?) # any character, including new line (lazy)
\}\}/x; # literal closing braces
制作更精确的解决方案取决于你想为你的字段提取什么确切的规则。
相关问题
- 1. 正则表达式正则表达式正则表达式使用正则表达式,但不是与Python
- 2. 正则表达式(正则表达式)
- 3. 正则表达式(正则表达式)
- 4. 正确的正则表达式匹配
- 5. 匹配正确的正则表达式
- 6. 如何使用正确的正则表达式
- 7. 的Javascript正则表达式 - 如何基于正则表达式
- 8. Java的正则表达式:找到正确的正则表达式
- 9. 如何以正确的方式转义C#正则表达式?
- 10. 如何正确使用elasticsearch正则表达式查询?
- 11. 如何正确应用正则表达式使用OR condtion?
- 12. 如何正确使用正则表达式
- 13. 如何正确使用正则表达式
- 14. OWASP正则表达式存储库:这是正确的正则表达式吗?
- 15. 正则表达式正则表达式返回的值正则表达式
- 16. 正则表达式正确匹配组
- 17. 正则表达式不太正确
- 18. 使用正则表达式的Javascript正则表达式匹配
- 19. 正则表达式如何?
- 20. 如何使用正则表达式在.htaccess中使用正则表达式mod_rewrite
- 21. Posix正则表达式捕获组不正确Posix正则表达式搜索
- 22. 如何正确地为此格式化正则表达式?
- 23. 正则表达式:如何使有条件的正则表达式
- 24. jQuery的正则表达式:如何使用jQuery正则表达式
- 25. 正则表达式 - 如何使spcific串的exceptioin在正则表达式
- 26. PHP-MySQLi替换为正则表达式/正则表达式/正则表达式
- 27. 正则表达式正则表达式模仿正则表达式
- 28. 如何编写正确的路由正则表达式?
- 29. 如何制作正确的Javascript正则表达式?
- 30. 如何编写正确的正则表达式?
+1用于详细解释正则表达式! – 2010-02-22 21:58:49