php 正则表达式 utf-8 中的单词边界匹配

2023-12-21

我在 utf-8 php 文件中有以下 php 代码:

var_dump(setlocale(LC_CTYPE, 'de_DE.utf8', 'German_Germany.utf-8', 'de_DE', 'german'));
var_dump(mb_internal_encoding());
var_dump(mb_internal_encoding('utf-8'));
var_dump(mb_internal_encoding());
var_dump(mb_regex_encoding());
var_dump(mb_regex_encoding('utf-8'));
var_dump(mb_regex_encoding());
var_dump(preg_replace('/\bweiß\b/iu', 'weiss', 'weißbier'));

我希望最后一个正则表达式仅替换完整单词而不是部分单词。

在我的 Windows 计算机上,它返回:

string 'German_Germany.1252' (length=19)
string 'ISO-8859-1' (length=10)
boolean true
string 'UTF-8' (length=5)
string 'EUC-JP' (length=6)
boolean true
string 'UTF-8' (length=5)
string 'weißbier' (length=9)

在网络服务器(linux)上,我得到:

string(10) "de_DE.utf8"
string(10) "ISO-8859-1"
bool(true)
string(5) "UTF-8"
string(10) "ISO-8859-1"
bool(true)
string(5) "UTF-8"
string(9) "weissbier"

因此,正则表达式在 Windows 上按我的预期工作,但在 Linux 上却不行。

所以主要问题是,我应该如何编写正则表达式以仅在单词边界匹配?

第二个问题是我如何让 Windows 知道我想在我的 php 应用程序中使用 utf-8。


即使在 UTF-8 模式下,标准类简写如\w and \b不支持 Unicode。正如您所解决的,您只需使用 Unicode 简写,但您可以通过使用环视而不是交替来使其不那么难看:

/(?<!\pL)weiß(?!\pL)/u

另请注意我如何将大括号从 Unicode 类简写中删除;当类名由单个字母组成时,您可以这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php 正则表达式 utf-8 中的单词边界匹配 的相关文章

  • 使用 PHP 将 class="active" 添加到活动页面

    动态标头 CSS 类更改为活动使用 PHP 目录 我想要的班级 li 在活动目录下更改标签 现在 每个指南都向我展示了当您的页面等于它时如何执行此操作 但我想更改 这 li li 取决于我所在的目录 例如 如果说我在 http exampl
  • 根据选择值显示/隐藏字段

    我试图根据我选择的字段之一的值显示和隐藏一些表单字段 我希望使用数组来保存每个选择值应该显示的内容和不应该显示的内容 以将我从大量的 switch 语句中拯救出来 但无法弄清楚如何做到这一点 我正在使用 PHP 和 jQuery 任何帮助都
  • 正则表达式将从文本文件中提取句子

    我需要一个正则表达式来从文本文件中提取句子 示例文本 以 2004 年底发生的亚洲海啸灾难为例 对 Google 新闻 http news google com 的查询在一个月内 1 月 17 日 返回了超过 80 000 篇有关该事件的在
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • Stripe 支付网关使用 PayumBundle 创建定期付款

    我在用支付包 https github com Payum PayumBundle将 Stripe 支付网关集成到我的 symfony2 应用程序中 我可以创建成功的直接付款 但无法创建定期付款 因为捆绑包的文档非常差 我的问题是如何使用
  • mongodb从不同数据库中选择

    我有大约 200 个 mongodb 数据库 每个数据库都有一个名为 Group 的集合 在该集合中有一个名为 meldingId 的字段 是否可以进行一个 mongodb 查询来查找不同数据库中的所有值 我设法通过 selectDB da
  • 在 woocommerce 管理订单页面中单击自定义按钮运行函数

    基于 在 woocommerce 中的管理订单列表顶部添加一个按钮 https stackoverflow com questions 49437781 add a button on top of admin orders list in
  • 如何使用 PHP 从图像文件中读取 Lightroom 关键字?

    我有一个照片社区 www jungledragon com http www jungledragon com 允许用户上传照片 我的平台是 PHP CodeIgniter 作为上传过程的一部分 我已经使用 PHP 读取 EXIF 信息ex
  • 简单搜索:使用 CodeIgniter 将表单变量传递到 URI

    我的每个页面上都有一个搜索表单 如果我使用表单助手 它默认为 POST 我希望搜索词显示在 URI 中 http example com search KEYWORD 我已经在谷歌上搜索了大约一个小时 但没有结果 我只找到了有关如何进行的文
  • 参数编号无效:参数未在[重复]中定义

    这个问题在这里已经有答案了 被困在这里有一段时间了 当我尝试运行代码时收到此错误 警告 PDOStatement execute SQLSTATE HY093 无效参数 number 参数未定义于 Applications XAMPP xa
  • yii2 无线电内联 Html 帮助器

    我在 yii2 中有这个 radioList Html radioList abc null new class gt form control input sm 它生成这个 div class radio 但我想要 div class r
  • 正则表达式中的“g”标志是什么意思?

    的含义是什么g正则表达式中的标志 之间有什么区别 g and g用于全局搜索 这意味着它将匹配所有出现的情况 通常你还会看到i这意味着忽略大小写 参考 全局 JavaScript MDN https developer mozilla or
  • 如何获取与我当前所在商店相关的产品所属类别 ID

    我在产品页面上并拥有产品对象 但是当我尝试使用以下方式获取类别 id 时 product gt getCategoryIds or product gt getResource gt getAttribute category ids gt
  • 正则表达式:匹配未包含在 [] 中的空格

    例如 对于这个字符串 div img wrapper img title Hello world 我想匹配第一个空格 但不匹配第二个空格 包含在 中 正则表达式是什么 以下表达式将通过使用前瞻断言来完成这项工作 gt 下划线代表空格 该表达
  • 如果 Row1 = 值 1,则更新其他行

    我有一个小的 php 脚本 用于访问 mySql 数据库 我想在数据库中插入新记录之前查看该数字 值 1 是否等于数据库中的记录 这也在第 1 行 所以我想 查看传入的电话号码是否等于数据库中的电话号码 如果是这样 则必须保持电话号码相同的
  • 多维数组内的移动

    我有一个用表格显示的数组 如何使用用户输入进行移动 目前 0 被分配给每个数组 但我计划为该数组分配其他值 我的问题是 如何使用用户输入在数组内向上 向下 向右 向左移动和对角移动 Array 0 gt Array 0 gt 0 1 gt
  • 如何使用 jQuery 通过 Ajax 发送复选框数组的值?

    我有一个包含很多表单字段的表单 12 x n 行 每行中的第一个字段 代表产品 是一个类似于以下内容的复选框
  • 如何扩展路径中的波形符(~)[重复]

    这个问题在这里已经有答案了 我有一个 shell 脚本 可以从用户那里获取目录路径 但我需要检查目录是否为空 如果用户将他的主路径与 而不是绝对路径 所以我无法检查它ls echo Specify your project root dir
  • Zend Framework 生成唯一的字符串

    我想生成一个唯一的 4 6 个字符长的字母数字字符串 以便与每个记录 用户 一起保存在数据库中 db 字段具有唯一索引 因此尝试保存预先存在的字符串会生成错误 现在我正在生成一个随机字符串并使用 try catch 因此在添加新记录时如果抛
  • gmail 不断阻止 PHPmailer 登录

    我将在接下来的 8 小时内部署一个网站 而 Gmail 刚刚停止接受 PHPmailer 登录我的帐户 起初 它在测试过程中工作了几个小时 然后 它就停止工作了 我已经允许所有允许不太安全的应用程序从 gmail 登录 但它仍然不允许 ph

随机推荐

  • Visual Studio 调试器突出显示多行,而不仅仅是当前行

    这里有一个奇怪的人 当我尝试单步调试时 我全新安装的 Visual Studio 2017 版本 15 6 7 显示多行黄色 如下所示 它似乎指向它所在的正确行 但也指向它下面的其他几行 也许这与缩进或范围有关 我不确定 但当我进行结对编程
  • 有没有办法在 .NET 运行时中预分配堆,就像 Java 中的 -Xmx/-Xms 一样?

    在大多数平台和大多数 JVM 上 您可以通过将 Xmx 和 Xms 选项 或其变体 设置为相同大小来在启动时预分配堆 是否可以对 NET 执行相同的操作 如果可以 如何执行 遗憾的是 事实并非如此 NET 运行时为您做出有关堆大小和相对分代
  • 节点 --max_old_space_size 不起作用

    节点版本 6 9 x 我的申请给了我FATAL ERROR CALL AND RETRY LAST Allocation failed JavaScript heap out of memory error 所以我尝试使用更改内存分配max
  • 最大高度的子级:100% 溢出父级

    我试图了解对我来说似乎出乎意料的行为 我在容器内有一个最大高度为 100 的元素 该元素也使用了最大高度 但出乎意料的是 子元素溢出了父元素 container background blue padding 10px max height
  • 多行 WPF FormattedText 中特定字符的坐标

    如何获取多行 WPF FormattedText 中特定字符的位置 x y 坐标 我的文本可能包含斜体部分 粗体部分 不同字体 不同字体大小 不同对齐方式等 并且我需要获取第 30 个字符 可能位于第 3 行 的坐标 通过使用我可以从 Fo
  • 在 onclick 中声明一个变量?

    当有人点击某个东西然后声明一个变量时 如何在 JavaScript 中声明一个 var 具体取决于函数将返回的内容 即 true 或 false 值 就像是 onclick var varable somefunction 然后我将比较 o
  • PyDev 控制台工作目录

    当我打开 PyDev 控制台时 当前工作目录是我的 Eclipse 文件夹 如何配置控制台以使用项目文件夹作为当前工作目录 可以在工作区范围内设置吗 这个问题 https stackoverflow com questions 103199
  • Drupal:添加新节点时自动添加菜单项

    在Drupal中向页面添加节点时可以自动添加菜单项吗 换句话说 我可以将菜单父级与节点内容类型相关联 然后在添加新节点时自动添加子级吗 thanks 您可以使用 Drupal 7 上的规则来完成此操作 该模块 http drupal org
  • 为什么“删除[][]...多维数组;” C++中不存在运算符

    我一直想知道标准C 语言中是否有删除多维数组的运算符 如果我们创建了一个指向一维数组的指针 int array new int size 删除看起来像 delete array 那太棒了 但是如果我们有二维数组 我们就不能这样做 delet
  • python导入语句

    我已经开始使用 Python 大约一个月了 我遇到了一些我想更好地理解的事情 跟进口有关系 所以我有一个模块 根 核心 连接性 现在在这个模块中我定义了一个类 Connectivity 该模块还有一个 main 仅用于测试目的 不确定这是否
  • MYSQL - 将数据拆分为多行

    我使用一个应用程序导入了一些数据 该应用程序从 IMDB 收集信息并将其传输到 MYSQL 数据库中 这些字段似乎尚未标准化 并且 1 个字段中包含许多值 例如 Table Movie MovieID Movie Title Written
  • 删除div之间的空白

    我在两个 div 之间发现了一些奇怪的空白 每个div都有css属性display inline block每个都有固定的高度和宽度 我找不到空白在哪里 这是一个小提琴 http jsfiddle net RVAQp 1 那里有空格 因为
  • 如何使用 TypeScript 从 npm 扩展模块?

    我在用着joi https github com hapijs joi blob master API md and 类型 joi https github com DefinitelyTyped DefinitelyTyped tree
  • 无法获得 D-Bus 连接:不允许操作

    我正在尝试在 docker centos7 映像上安装 ambari 2 6 但在 ambari 设置步骤中以及在初始化 postgresql 数据库时 我收到此错误 无法获得 D Bus 连接 不允许操作 每次我尝试在 Docker 映像
  • swagger 正在添加上下文根两次

    我正在使用 swagger 3 0 0 SNAPSHOT 和 spring data rest 我的应用程序属性文件中有上下文配置 server servlet context path sample 我的swagger配置如下 Confi
  • 在 DataGridTemplateColumn 内的 TextBlock 上复制 ContextMenu 上的命令

    想问一下 因为以前从未在 TextBlock 上这样做过 我无法复制 DataGridTemplateColumn 的内容 其中有一个 TextBlock 并且我已为其分配了一个上下文菜单 复制的内容是空白的 当我在 MS Word 中尝试
  • Python BeautifulSoup:解析具有相同类名的多个表

    我正在尝试解析 wiki 页面中的一些表格 例如http en wikipedia org wiki List of Bollywood films of 2014 http en wikipedia org wiki List of Bo
  • 如何在不使用异常的情况下检查 constructor() 中的失败?

    我正在处理的所有类都有 Create Destroy 或 Initialize Finalized 方法 Create 方法的返回值为bool像下面这样 bool MyClass Create 所以我可以从返回值中检查实例的初始化是否成功
  • Aeson:将动态键解析为类型字段

    假设有一个像这样的 JSON bob id name bob age 20 jack id name jack age 25 是否可以将其解析为 Person with Person定义如下 data Person Person id Te
  • php 正则表达式 utf-8 中的单词边界匹配

    我在 utf 8 php 文件中有以下 php 代码 var dump setlocale LC CTYPE de DE utf8 German Germany utf 8 de DE german var dump mb internal