我正在使用一些构建,并且必须编写一个正则表达式以包含一些分支,但排除其他分支(以便创建构建)。
我能想到的最好的是这个正则表达式,它使用正面和负面的前瞻性来匹配分支名称:
(?=.*12\.3)^((?!(version-12\.3)).)*$
以下是分支名称以及它们应该如何匹配:
bugfix-ISSUE-123-some-details-version-12.3
ISSUE-1234-some-other-details-version-12.3
bugfix-12.3
bugfix2-12.3
12.3stuff
stu12.3ff
// match everything above, but don't match anything from below
master
version-12.3
version-3.21
some-other-branch
bugfix-3.21
test
请使用这个在线工具(这是我发现的唯一一个支持负和正先行正则表达式的工具)。
现在,我提出的正则表达式工作正常,除了以下两个分支:
bugfix-ISSUE-123-some-details-version-12.3
ISSUE-1234-some-other-details-version-12.3
不包括它们的原因是因为我使用了这个负前瞻正则表达式,它排除了vertion-12.3
(我想要的),但也排除了包含此字符串的任何其他内容(例如ISSUE-123-vertion-12.3
,我想包括它,但它不是):
((?!(version-12\.3)).)*$
你能帮一点忙吗?
如果您需要失败所有匹配,其中包含12.3
的字符串以version-
一些数字/点开头,您可以使用
^(?!version-\d+\.\d).*12\.3.*$
查看正则表达式演示。
详情:
^
- 字符串的开头(?!version-\d \.\d)
- 如果字符串开头有版本
-、1 位数字、一个点和一个数字,则匹配失败的负前瞻.*
- 任何 0 个字符(换行符除外)12\.3
- 12.3
子字符串.*
- 任何 0 个字符(换行符除外)$
- 字符串的结尾。如果版本-
数字/点作为整个字符串不允许,请使用
^(?!version-[\d.]+$).*12\.3.*$
查看另一个正则表达式演示。
这里,^
将匹配字符串的开头,然后是< code > (?!version-[\d.] $)将触发检查:如果< code>version-后跟1位数字/点,直到字符串结束(< code>$),匹配将失败。
有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。
问题内容: 我没有JavaScript方面的丰富经验,但是我正在尝试创建一个标记系统,而不是使用or ,而是使用。 我该如何使用而不是。我尝试做并添加,但是失败了。 问题答案: 您可以这样逃避它。 或只使用indexOf
我有一根线,比如: 如何匹配每行的最后一个?顺便说一句,这是我试图在Sublime的文本中做到的。这些值不一致,就像我在这里看到的,我有几百行要替换。 我尝试了,但这与相匹配。
问题内容: 是的,您没看错。我需要能够从正则表达式 生成 随机文本的内容。因此,文本应该是随机的,但要与正则表达式匹配。看来它不存在,但我可能是错的。 仅举一个例子:该库将能够以“ ”作为输入,并生成诸如以下示例: abc abbbc bac 等等 更新:我自己创建了一些东西:Xeger。查看http://code.google.com/p/xeger/。 问题答案: 我刚刚创建了一个库来进行此操
问题内容: 嗨,所有正则表达式高手,我都知道您在解决我的问题。呵呵 要么 要么 (dd-MMM-yyyy),其中yyyy不接受数字以外的任何其他字符 问题答案: 假设月份是3个字母的版本:例如1月,2月,3月。 更新了版本以匹配对问题的更改: 如前所述,这实际上不会验证日期,而只是验证字符串是否匹配以下格式: 1或2个数字,破折号,3个字母,破折号,4个数字 。
我们得到了一些这样的内容: