热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在现有正则表达式中支持空格字符-EnablingSpaceCharactersinCurrentRegularExpressions

本文探讨了在当前正则表达式中支持空格字符的方法。作者尝试在正则表达式中允许空白字符,但遇到了一些问题,导致该表达式无法正确识别空格。文章详细分析了问题的原因,并提出了解决方案,旨在提高正则表达式的灵活性和实用性。

I am trying to allow whites space in my regex. For some reason this expression will not allow white space. Here is my current regex

我试图在我的正则表达式中允许白色空间。由于某种原因,此表达式将不允许空格。这是我现在的正则表达式

preg_match( "/^[A-Za-z0-9?.,-=$@!&%';:)(_\s]+$/", $value )

2 个解决方案

#1


Perhaps the white space you try to match is not in the ascii range. (for example the non-breakable space). So you can try to add the u modifier to extend the \s character class to all the unicode whitespaces (by default \s contains only ascii whitespaces).

您尝试匹配的空白区域可能不在ascii范围内。 (例如不易碎的空间)。因此,您可以尝试添加u修饰符以将\ s字符类扩展为所有unicode空格(默认情况下,仅包含ascii空格)。

So try this:

试试这个:

preg_match( "/^[A-Za-z0-9?.,-=$@!&%';:)(_\s]+$/u", $value )

or this:

preg_match( "/(*UCP)(*UTF8)^[A-Za-z0-9?.,-=$@!&%';:)(_\s]+$/", $value )

Note: I suggest you to perform clever tests to be sure that whitespaces are really the problem. Note2: this pattern matches exactly the same thing, but it uses character ranges (take a look at the ascii table) and the case insensitive modifier i:

注意:我建议你进行巧妙的测试,以确保空白确实是问题所在。注意2:这个模式完全匹配相同的东西,但它使用字符范围(看一下ascii表)和不区分大小写的修饰符i:

preg_match( "/^[!$-'(),-=?@-Z_\s]+$/ui", $value )

#2


It does match whitespace:

它匹配空格:

preg_match("/^[A-Za-z0-9?.,-=$@!&%';:)(_\s]+$/", '   '); // true
preg_match("/^[A-Za-z0-9?.,-=$@!&%';:)(_\s]+$/", 'a a'); // true
preg_match("/^[A-Za-z0-9?.,-=$@!&%';:)(_\s]+$/", 'aaa'); // true
preg_match("/^[A-Za-z0-9?.,-=$@!&%';:)(_\s]+$/", 'a*a'); // false

推荐阅读
  • PHP正则表达式主要用于字符串的模式分割、匹配、查找及替换操作。使用正则表达式在某些简单的环境下可能效率不高,因此如何更好的使用PHP正则表达式需要综合考虑。PHP正则表达式的定义 ... [详细]
  • Python正则表达式详解:掌握数量词用法轻松上手
    Python正则表达式详解:掌握数量词用法轻松上手 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 在探讨 MySQL 正则表达式 REGEXP 的功能与应用之前,我们先通过一个小实验来对比 REGEXP 和 LIKE 的性能。通过具体的代码示例,我们将评估这两种查询方式的效率,以确定 REGEXP 是否值得深入研究。实验结果将为后续的详细解析提供基础。 ... [详细]
  • Python正则表达式(Python RegEx)
    Python正则表达式快速参考常用函数:re.match():从字符串的起始位置匹配一个正则表达式。re.search():扫描整个字符串并返回第一个成功的匹配。re.s ... [详细]
  • 本打算教一步步实现koa-router,因为要解释的太多了,所以先简化成mini版本,从实现部分功能到阅读源码,希望能让你好理解一些。希望你之前有读过koa源码,没有的话,给你链接 ... [详细]
  • URL参数格式http:localhos:8080demo?ab&cd&ef匹配参数a对应的表达式为^a([^&]*)&匹配参数b对应的表达式为&b([^&]*)&匹配参数c对应 ... [详细]
  • 本文记录了 JavaScript 中正则表达式的使用方法和常见操作,包括匹配、替换、搜索等。 ... [详细]
  • Python内置模块详解:正则表达式re模块的应用与解析
    正则表达式是一种强大的文本处理工具,通过特定的字符序列来定义搜索模式。本文详细介绍了Python内置的`re`模块,探讨了其在字符串匹配、验证和提取中的应用。例如,可以通过正则表达式验证电子邮件地址、电话号码、QQ号、密码、URL和IP地址等。此外,文章还深入解析了`re`模块的各种函数和方法,提供了丰富的示例代码,帮助读者更好地理解和使用这一工具。 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
  • 如何利用正则表达式(regexp)实现高效的模式匹配?本文探讨了正则表达式在编程中的应用,并分析了一个示例程序中存在的问题。通过具体的代码示例,指出该程序在定义和使用正则表达式时的不当之处,旨在帮助读者更好地理解和应用正则表达式技术。 ... [详细]
  • 在处理数据框时,常见的需求是从Excel文件中读取数据,并清除所有字段中的特定字符,如分号。由于列中可能包含多种数据类型,直接操作可能会引发AttributeError。为避免此类错误,建议使用Pandas库中的`applymap`方法,结合自定义函数来实现字符的高效移除。 ... [详细]
  • 下面的代码旨在输出其类文件的完整名称。对于不熟悉类字面量的读者,`Me.class.getName()` 方法会返回类的全称,例如 “com.javapuzzlers.Me”。通过这一机制,可以深入了解 Java 类加载和反射机制的内部工作原理。 ... [详细]
  • 本文旨在构建一个JavaScript函数,用于对用户输入的电子邮件地址和密码进行有效性验证。该函数将确保输入符合标准格式,并检查密码强度,以提升用户账户的安全性。通过集成正则表达式和条件判断语句,该方法能够有效防止常见的输入错误,同时提供即时反馈,改善用户体验。 ... [详细]
author-avatar
捕鱼达人2502856571
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有