![]() |
1
13
毫不客气地在托普夫的努力下建立:
印刷品:
公正地要求说明 hasen j ,让我澄清一下这是如何工作的:
匹配单个标记-@后接至少一个字母数字或u后接至少一个空格字符。+是贪婪的,所以如果有多个空间,它会把它们都抓住。 为了匹配这些标记中的任何数量,我们需要在标记的模式中添加一个加号(一个或多个事物);因此我们需要用括号将其分组:
它匹配一个或多个标签,贪婪地匹配所有标签。但是,这些圆括号现在与我们的捕获组混淆了,因此我们通过使它们成为一个匿名组来撤消这一操作:
最后,我们将其组成一个捕获组,并添加另一个来清除其余部分:
总结最后一个细目:
请注意,在回顾这篇文章时,我已经改进了它-\w不需要在一个集合中,现在它允许标记之间有多个空格。谢谢,哈森-J! |
![]() |
2
7
|
![]() |
3
5
这个怎么样?
|
![]() |
4
3
也可以使用正则表达式:
但这完全取决于数据的外观。所以你可能需要调整它。它所做的基本上是通过()创建组并检查其中允许的内容。 |
![]() |
5
3
|
![]() |
6
3
[ 编辑 :这是执行上述OSAMA的建议] 这将基于字符串开头的@variables创建l,然后一旦找到非@var,只需获取字符串的其余部分。
您可以将其重构为更少的代码,但我正在努力使所发生的事情变得明显。 |
![]() |
7
1
下面是另一个使用split()而不使用regexpes的变体:
下面是一个较短但可能有点神秘的版本,它使用regexp查找第一个空格,后跟一个非@字符:
如果没有标签或文本,则无法正常工作。格式未指定。您需要提供更多的测试用例来验证。 |
![]() |
Ben · 统计向量中的单词在字符串中出现的频率 3 月前 |
![]() |
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 5 月前 |
![]() |
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 5 月前 |
![]() |
user764754 · 防止多行原始字符串文字中出现新行字符 5 月前 |
![]() |
Bogaso · 从列表中返回与模式匹配的元素 5 月前 |
![]() |
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 5 月前 |