当前位置: 首页 > 知识库问答 >
问题:

正则表达式练习组

商宏爽
2023-03-14

你好,堆栈溢出。正如我在上一篇文章中提到的,我正在努力提高正则表达式的水平。今晚我将浏览我的书中的章节,并决定看看我是否可以,如果可能的话,创建多个组。我完全知道正则表达式不是一切的答案,这纯粹是为了让我学习。我正在使用VB. net

输入示例

MyTokenName{%@example1%, %@example2%}
MyTokenName{example1, example2}

现在,这是一个由我自己制作的完整输出来测试。这个表达式的一致因素是Name{}总是有一个名字首先只由a-z组成。在花括号内。分隔两个组的主分隔符是在组开始之前,将有一个OPTIONAL%@以OPTIONAL%结尾

因此,总结一下,我只想把定义在a-z无限次方括号中的组匹配起来。

MyTokenName{%@example%, %@example%} ----- Would match Two groups example1 and example2
MyTokenName{example, example} --- Would match Two groups example1 and example2

我的尝试不起作用。

(?<=[a-zA-Z]+\{[^a-zA-Z@]+?)[a-zA-Z, ]+(?=%?})

任何建议都将是惊人的。谢谢你们这么好的论坛。请记住,我只是想练习正则表达式。我可以用其他的。净方法。

共有3个答案

鲍健柏
2023-03-14

在这里,模式(\w)是否符合您的目的?它将匹配MyTokenName、示例1和示例2。

如果你总是想忽略MyTokenName,你可以只引用列表中第一个匹配项以外的任何匹配项。

喜欢:

dim txt = "MyTokenName{%@example1%, %@example2%}"
dim matches = regex.matches(txt,"(\w+)")
for i as integer = 1 to (matches.count - 1)
    DoSomethingWith(matches(i).value) 'start at 1 so we skip over MyTokenName
next

差不多吧。

萧琛
2023-03-14

这种可变长度的lookback在性能上是昂贵的,在这种情况下没有真正的价值,因为您只想捕获您感兴趣的内容。

这可能行得通。

[a-zA-z]{\s*(?:%@)([a-z])%?\s*,\s*(?:%@)([a-z])%?\s*}

邓光赫
2023-03-14

一个有趣的方法可能是:

/(?i)(?<=\{|\G|\{%@|\G%@)([a-z0-9]+)(?:%?\s*(?:,\s*|\}))/g

http://regex101.com/r/bU0zY5

以下是它的结构视图:

Debuggex演示

有趣的是,我指的是使用lookback with\G;)它应该与你所有的示例相匹配

 类似资料:
  • 正则表达式(RegEx)是一种简洁的方式,用于确定字符序列应如何在字符串中匹配。通常大家都认为它们是“可怕”的,但是,正如你所知道的,任何包含在恐惧中的东西通常都不是这样。正则表达式的事实是,它们是大约八个符号的集合,告诉计算机如何匹配模式串。简单来说,他们很容易理解。人们遇到困难的地方是,尝试使用难以置信的复杂的正则表达式,其中解析器实际上会更好。一旦你明白了这八个符号和正则表达式的限制,你就会

  • 本文向大家介绍学习JavaScript正则表达式,包括了学习JavaScript正则表达式的使用技巧和注意事项,需要的朋友参考一下 JavaScript正则表达式学习: 有个在线调试正则的工具。下面的所有示例代码,都可以在codepen上查看到。 1.创建正则表达式 1)正则表达式字面量在脚本加载后编译。若你的正则表达式是常量,使用这种方式可以获得更好的性能。 2)使用构造函数,提供了对正则表达式

  • 我有3个正则表达式,但当模式匹配时执行相同的操作,所以我考虑将所有三个表达式合并为一个。我尝试了很多,但无法让“|”I.e”或“在我的正则表达式中工作 regex1:<代码>文本。替换(/([\u00A9-\u3299])/g,函数myFunction(x){…} regex2: regex3: 我试过这样做,但它不起作用regex:

  • 5. 练习:在C语言中使用正则表达式 POSIX规定了正则表达式的C语言库函数,详见regex(3)。我们已经学习了很多C语言库函数的用法,读者应该具备自己看懂man手册的能力了。本章介绍了正则表达式在grep、sed、awk中的用法,学习要能够举一反三,请读者根据regex(3)自己总结正则表达式在C语言中的用法,写一些简单的程序,例如验证用户输入的IP地址或email地址格式是否正确。

  • 正则表达式 (regular expressions) 是一个非常有用的工具,例如验证字符串参数、从日志文件中提取关键信息等。 https://regexone.com 是一个正则表达式的学习平台,最大亮点在于提供了一个交互式的练习组件,可以实时展示正则表达式的匹配结果。通过一系列的闯关式课程来学习正则表达式,难度循序渐进,对新手友好。 作者最近学习了上面的课程,感觉还不错,于是将其翻译成了中文,

  • 昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?