我目前拥有的正则表达式是:
"^(?:(\\.\\.)|^([a-z]+[a-z.\\-]*)([\\*]?)[\\[]*([^\\]]*)[\\]]*)$";
它捕获了其中一个“.”(第1组)第2-4组为空
或:
一组小写、点、破折号。以小写字母开头(第2组)
——后跟可选星号(第3组)
——后跟方括号内的可选内容(第4组)
我有两个问题,第一个是让第二组必须以字母结尾,我尝试了很多方法,包括:
"^([a-z]+[a-z.\\-]*[a-z]$)"
"^([a-z]+[a-z.\\-]*[a-z])$"
能杀死3-4组的任何生物
"^([a-z]+[a-z.\\-]*[a-z])"
这似乎没什么不同
我遇到的另一个问题是组4,它不依赖于方括号(这是有意义的,因为我有*字符为他们)...但是如果我删除该字符,它不会给我任何组的结果。
任何帮助都是非常需要和感激的。
作为对下面评论的回应,以下内容应该匹配:“string”-(group1)(group2)(group3)(group4)
".." - (..)()()()
"blah" - ()(blah)()()
"blah.blah" - ()(blah.blah)()()
"blah.blah*" - ()(blah.blah)(*)()
"blah*" - ()(blah)(*)()
"blah.blah*[foobar] - ()(blah.blah)(*)(foobar)
"blah[foobar] - ()(blah)()(foobar)
以下内容不应匹配:
"."
"..."
".blah"
"blah."
".blah*"
"blah.*[foobar]
这就是我能想到的:
^(\.{2})?([a-z](?:\.*-*[a-z])*)?(\*)?(\[[^]]*\])?$
我不确定括号里允许什么,所以它匹配那里的任何非括号字母。
(正确转义:^(\\.{2})?([a-z](?:\\.-*[a-z])*)?(\\*)?(\\[[^]]*\\])?$
)
这个正则表达式:
[a-z](?:\.*-*[a-z])*
将始终匹配以小写字母开头和结尾的字符串。
┌ one or more lowercase letters followed by
│
│ ┌ none or several occurrences of ───────────────────────┐
│ │ ┌ dot or dash │
│ │ │ ┌ followed by one or more lowercase letters │
│ │ │ │ ┌─────────────────────────────────────┘
│ │ │ │ │
│ │ │ │ │ ┌ followed by optional asterisk
│ │ │ │ │ │
│ │ │ │ │ │ ┌ followed by optional square brackets
┌ or │ │ │ │ │ │ │ ┌ with some content inside │
│ │ │ │ │ │ │ │ │ ┌─────────────────┘
│ │ │ │ │ │ │ │ │ │
^(?:(\\.\\.)|(?:([a-z]+(?:[.\\-]*[a-z]+)*)(\\*?)(?:\\[([^\\]]*)\\])?))$
│ │ │ │
│ └ two │ │
│ dots ┘ │
│ │
└ start of string end of string ┘
我正在研究regexone.com的问题6,我不明白分组是如何与“改变”一起工作的。 这是测试字符串: 任务是捕捉快速的棕色狐狸没有额外的空白,这可以通过完成。 但是捕获了一组([27-28])为什么?结果,捕获了两组-[6-28]和([27-28])。 分组是如何工作的?除了字符类按字符匹配而更改按单词匹配(我的基本理解)之外,处理更改和字符类还有什么区别? 注:当我甚至不知道这些问题的名称时,
我正在纠结于捕获最后一组--使用我的正则表达式,只有第一行匹配模式,而不是其他两行。如果我将正则表达式更改为,则所有3行都匹配,但第一行捕获不成功(我只获得1组,而不是2组和)。 如何编写这个正则表达式,使所有行都有5个匹配组?
我只想在空格字符()后面跟一个哈希()时匹配空格字符。 这就是下面的试图做的,这是一个捕获组。(我试图避开括号,否则括号在组集中无法正确识别)。然而,这是行不通的。 下面的正则表达式 符合以下所有条件 而我想分别搭配和 有没有办法在字符集中指定捕获组?
问题:如何首先捕获两个角色之间的组,然后再匹配匹配组中的角色? 给定输入: 问题1:我想捕获两个角色之间的组,无限次。 正则表达式解决方案: 捕获的群体: 问题2:我想匹配捕获组中的一个字符 尝试正则表达式解决方案1: 尝试的正则表达式解决方案2: 我的问题:以上尝试的解决方案都没有捕获输入字符串中的星号。我如何实现这一点?
假设我有这个虚拟URL,我需要提取植物及其颜色作为 下面的I have正在按预期捕获我需要的元素,但是当我的URL中的植物少于4株时,它无法捕获任何东西。底部有一个指向regex测试员的链接,其中有示例代码和URL,您可以使用。 如何修改这个正则表达式,使其动态工作,从而在不需要静态URL结构的情况下捕获可用内容。现在,假设我最多只能捕获4株植物(8组) https://regex101.com/
在Python中,如何在非捕获组中捕获组?换句话说,如何重复包含捕获组的非捕获子模式? 例如,捕获导入字符串上的所有包名。例如,字符串: 导入熊猫、操作系统、系统 将返回“pandas”、“os”和“sys”。下面的模式捕获第一个包并到达第二个包: 从这里,我想重复捕获组并匹配以下字符的子模式,即。当我用一个非捕获组包围这个子模式并重复它时: 它不再捕捉里面的群体。