- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
介绍/问题:
我一直在研究正则表达式的使用(使用VBA/Excel),到目前为止我无法理解如何隔离 <space>
(或 " "
)使用 \s
中包含的其他空白字符的正则表达式。我以为我可以使用\p{Zs}
,但到目前为止,在我的测试中,它还没有成功。有人可以纠正我的误解吗?我感谢任何有用的意见。
为了提供适当的信用,我修改了一些代码,这些代码最初是@Portland Runner 的一篇非常有用的帖子,可以在此处找到:How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops
到目前为止,这是我的方法/研究:
使用字符串"14z-16z Flavored Peanuts"
,我一直在尝试编写一个 RegExp 来删除 "14z-16z "
仅留下"Flavored Peanuts"
。我最初使用^[0-9](\S)+
作为 strPattern 和具有以下代码片段的子过程:
Sub REGEXP_TEST_SPACE()
Dim strPattern As String
Dim strReplace As String
Dim strInput As String
Dim regEx As New RegExp
strInput = "14z-16z Flavored Peanuts"
strPattern = "^[0-9](\S)+"
strReplace = ""
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = True
.pattern = strPattern
End With
If regEx.Test(strInput) Then
Range("A1").Value = regEx.Replace(strInput, strReplace)
End If
End Sub
这种方法给我的 A1 值为 " Flavored Peanuts"
(注意该字符串中的前导 <space>
)。
然后我改变了strPattern = "^[0-9](\S)+(\s)"
(添加 (\s)
),这给了我所需的 A1 值 "Flavored Peanuts"
。伟大的!!!我得到了想要的输出!
但据我了解,\s
表示所有空白字符,等于 [ \f\n\r\t\v]
。在这种情况下,我知道该字符只是一个普通的单个空格 - 我不需要回车符、水平制表符等。所以我尝试看看是否可以隔离 <space>
正则表达式中的字符(unicode分隔符:空格),我相信是 \p{Zs}
(例如 strPattern = "^[0-9](\S)+(\p{Zs})"
)。但是,使用此模式不会返回任何匹配项,更不用说删除前导空格。我还尝试了更通用的\p{Z}
(所有 unicode 分隔符),但这也不起作用。
显然我在学习中遗漏了一些东西。需要并感谢帮助。谢谢。
最佳答案
由于您正在尝试查找与 \p{Zs}
Unicode 类别类的对应关系,因此您可能还需要处理所有硬空间。这段代码会很有帮助:
strPattern = "^[0-9](\S)+[ " & ChrW(160) & "]"
或者,
strPattern = "^[0-9](\S+)[ \x0A]"
[\x0A]
字符类将匹配常规空格或硬不间断空格。
如果您需要匹配各种空格,您可以使用根据 https://www.cs.tut.fi/~jkorpela/chars/spaces.html 上的信息获取的正则表达式模式。 :
strPattern = "^[0-9](\S)+[ \xA0\u1680\u180E\u2000-\u200B\u202F\u205F\u3000\uFEFF]"
这是带有代码点说明的表格:
U+0020 32 SPACE foo bar Depends on font, typically 1/4 em, often adjusted
U+00A0 160 NO-BREAK SPACE foo bar As a space, but often not adjusted
U+1680 5760 OGHAM SPACE MARK foo bar Unspecified; usually not really a space but a dash
U+180E 6158 MONGOLIAN VOWEL SEPARATOR foobar No width
U+2000 8192 EN QUAD foo bar 1 en (= 1/2 em)
U+2001 8193 EM QUAD foo bar 1 em (nominally, the height of the font)
U+2002 8194 EN SPACE foo bar 1 en (= 1/2 em)
U+2003 8195 EM SPACE foo bar 1 em
U+2004 8196 THREE-PER-EM SPACE foo bar 1/3 em
U+2005 8197 FOUR-PER-EM SPACE foo bar 1/4 em
U+2006 8198 SIX-PER-EM SPACE foo bar 1/6 em
U+2007 8199 FIGURE SPACE foo bar “Tabular width”, the width of digits
U+2008 8200 PUNCTUATION SPACE foo bar The width of a period “.”
U+2009 8201 THIN SPACE foo bar 1/5 em (or sometimes 1/6 em)
U+200A 8202 HAIR SPACE foo bar Narrower than THIN SPACE
U+200B 8203 ZERO WIDTH SPACE foobar Nominally no width, but may expand
U+202F 8239 NARROW NO-BREAK SPACE foo bar Narrower than NO-BREAK SPACE (or SPACE)
U+205F 8287 MEDIUM MATHEMATICAL SPACE foo bar 4/18 em
U+3000 12288 IDEOGRAPHIC SPACE foo bar The width of ideographic (CJK) characters.
U+FEFF 65279 ZERO WIDTH NO-BREAK SPACE
致以诚挚的问候。
关于regex - 如何在 VBA 中使用 RegExp 隔离空格(\s 与\p{Zs})?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28617616/
我的公司有一个 Web 应用程序,其中包含纯 JavaScript,它以自己的方式使用 $ -“美元符号”,如下所示: function $(e) { return document.getE
doc说“这意味着对单个节点上单个分区内的行的写入仅对执行操作的客户端可见”。 如果有另一个 client2 在同一个分区和同一个节点上执行操作,那么文档中提到的“THE CLIENT”执行的写入是否
只是一个想法,但在 DIV 上使用 IFRAME 本质上会使该元素与窗口隔离,从而降低 IFRAME 中运行的脚本速度 不会影响其他框架/窗口吗? 最佳答案 是的,对于第一部分,iframe 会“某种
我有以下模型 Inventory [product_name, quantity, reserved_quantity] 有数据 [Shirt, 1, 0] [Shorts, 10, 0] 如果以下代
我面临的情况如下。因为ThreadPool是每个进程1个实例,所以我的问题是是否会在 3秒后取消方法2排队的任务? http request comes in *method 1 gets execu
我希望在 Dart 中创建一个 Isolate,我可以通过编程方式暂停和恢复。这是我使用的代码。 import 'dart:io'; import 'dart:isolate'; void main(
我想编写一个具有隔离作用域的指令,但也希望使该作用域可用于父作用域的 Controller 。我找到了这个解决方案: app.directive('popupbutton', [functi
我有一个像这样的 JSON 对象: [ {"Subject": "Physics", "Active": 48, "Date": "2020-01-22T00:00:00Z"}, {"Su
我正在使用 Elixir 自动执行用 Gherkin 编写的规范中定义的验收测试。一种方法是使用名为 Cabbage 的 ExUnit 插件。 . 现在,ExUnit 似乎提供了一个在任何单个测试之前
我被要求为多个用户配置一个带有 docker 的 ubuntu 18.04 服务器。 目的: 我们有多个编写测试用例的测试人员。但是我们的笔记本电脑速度不够快,无法在 docker 环境中构建项目和运
我一直在网上寻找完整的解决方案,但到目前为止,我只能找到不合适的部分。 我正在寻找一个可以查看图像文件、循环遍历文件并隔离 Sprite 然后保存它们的程序。之后,我需要一种方法来重新访问该 Spri
我想知道如何隔离 JavaScript 函数的执行以避免浏览器崩溃。 示例:如果我想在控制台中输出一个包含大约 10k 元素的关联数组,浏览器将停止响应。我怎样才能避免这种情况? 最佳答案 解决方案是
我必须向我的数据库添加大量信息。添加此信息大约需要 5-7 分钟。我需要添加交易。 我试过这个: try { db.Connection.Open(); db.Transaction
我有 6 个 iframe,它们来自同一个域,但具有不同的 url 和子目录。他们都使用 html header “set-cookie”设置了一个名称相同但值不同的 cookie。我需要将它们的 c
我正在编写一个代码,它基本上读取一个文本文件(表格格式)并检查该文件是否包含预期的数据类型。为此我写了下面的课。 示例文件应该是这样的。 name age abc 20 xyz
我有一个表,线程。我有一个表,thread_participants。我正在尝试隔离与特定 thread_id 和特定 thread_participants.user_id 标识的行。 例如,如果
我有一个非常实际的问题。我的数据库中有大约 400 篇文章,在这些文章中我有其他文章的链接。在转换过程中,链接被破坏。我们在 CMS 中手动插入新的菜单链接项。我想制作一个脚本来查找(文章)id 并将
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我在想是否可以在 postgres 数据库(高于 8.3 的版本)上创建一个只能访问特定指定模式的用户。问题是,在我的数据库中我有一些模式。如果我撤销某个用户对除一个模式之外的所有模式的所有特权,他仍
我有两组点,一组来自分析,另一组用于分析数据的后处理结果。 黑色的分析数据是散乱的。 用于结果的点是红色的。 这是同一地 block 上的两组: 我遇到的问题是:我将插值到红点上,但如您所见,有些红点
我是一名优秀的程序员,十分优秀!