php - 使用 w.* 的正则表达式模式不匹配以外来字符开头的文本,例如 Ä

标签 php regex preg-match preg-match-all

我有以下我一直在成功使用的正则表达式:

preg_match_all('/(\d+)\n(\w.*)\n(\d{3}\.\d{3}\.\d{2})\n(\d.*)\n(\d.*)/', $text, $matches)

但是我刚刚发现,如果 (\w.*) 部分匹配的文本以外来字符开头,例如 Ä,那么它不会匹配任何东西。

任何人都可以帮助我正确的模式应该是什么而不是 (\w.*) 来匹配以任何字符开头的字符串?

非常感谢

最佳答案

如果您确实想要匹配变音符号,则添加正则表达式 /u 修饰符,或使用 \pL 代替 \w。这将允许正则表达式匹配 ASCII 范围之外的字母。

引用:http://www.regular-expressions.info/unicode.html
http://php.net/manual/en/regexp.reference.unicode.php

关于php - 使用 w.* 的正则表达式模式不匹配以外来字符开头的文本,例如 Ä,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8137315/

相关文章:

javascript - redis php 和 javascript 连接

php - PHP字符串控制台参数数组

java - 正则表达式替换保留组

java - 如何将正则表达式转换为 extglob 表达式?

php - Preg 替换直到点,包括那个

php - 如何在 php 中使用 regex 和 preg_match 检索号码

php - html 页面上方的静态消息

php - Sendgrid Web API v3 每个收件人的不同替换值

PHP- fatal error : Call to a member function dbRows() on a non-object

c++ - 带有反向引用的正则表达式在 C++ 中不匹配