如果仅重复一组符号,如何使正则表达式匹配?

霍格

我需要一个可能匹配日期的正则表达式。但是,天,月和年的分隔符可能会有所不同。可能是点,破折号,斜线...

我有的是

^([012]?[1-9]|3[01])[\\.\\-\\/\\\\](0?[1-9]|1[012])[\\.\\-\\/\\\\](19|20)\\d{2}$

所以是

([012]?[1-9]|3[01]) --the day part
(0?[1-9]|1[012])    --the month part
(19|20)\\d{2}       --the year part

分隔符重复两次,根据我当前的表达式[\\.\\-\\/\\\\],可能会有所不同...我的意思是说,它匹配,例如:

01.01-1986

虽然我希望它仅在有两个点或两个破折号或两个分隔符允许的范围内时才匹配...所以上面给出的示例不应匹配。

我想可以用正则表达式的分组模式来完成。但是我不知道如何应用它。我也发现自己绝对不知道如何用谷歌搜索...

有人可以将我推向正确的方向吗?


PS:我最近看过SO正则表达式以匹配有效日期...就我而言,我确实知道它将与没有正则表达式的月份中的第31个匹配,并且所有月份都在2月缺席...全部好吧...


在Java中,我目前使用以下代码:

String value = "31/12/2086";
String pattern = ...
boolean result = value.matches(pattern);

在C#中

string value = "01.01.2014";
string pattern = "";
bool result = Regex.IsMatch(value, pattern);

如果有一种方法可以做我想做的事情,那么该解决方案对这两种语言都适用将会很棒。Java和C#正则表达式兼容吗?

普什莫

您可以\\x在正则表达式中使用x组号。它表示由group匹配的相同字符串x因此,您可以使用类似

someRegex([.\\-/\\\\])someOtherRegex\\1anotherRegex
          ^^^^^^^^^^^               ^^^
            group 1                 here should appear same string as in group 1

例子

String regex = "someRegex([.\\-/\\\\])someOtherRegex\\1anotherRegex";
System.out.println("someRegex.someOtherRegex.anotherRegex".matches(regex));
System.out.println("someRegex.someOtherRegex-anotherRegex".matches(regex));
System.out.println("someRegex-someOtherRegex-anotherRegex".matches(regex));

输出:

true
false
true

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果仅重复一组符号,如何使正则表达式匹配?

来自分类Dev

正则表达式仅匹配一组

来自分类Dev

正则表达式:如果字符串以所需序列开头,则如何仅将内部子字符串与一组匹配

来自分类Dev

如何使用 Python 和正则表达式替换符号之间的一组字母

来自分类Dev

仅当最后一组正好是n个字符长时,正则表达式才匹配

来自分类Dev

在正则表达式中仅返回一组具有 OR 条件的组

来自分类Dev

正则表达式:需要匹配一组字符而不匹配另一组字符

来自分类Dev

如何匹配正则表达式捕获组之后但仅直到下一个重复匹配的所有文本?

来自分类Dev

正则表达式捕获一组的多个重复

来自分类Dev

一组重复数字的正则表达式

来自分类Dev

如何让Logstash删除与一组正则表达式不匹配的所有事件?

来自分类Dev

如何创建可选择性匹配一组字符但忽略数字的正则表达式?

来自分类Dev

有条件的正则表达式:仅返回一组

来自分类Dev

正则表达式匹配行首或一组字符

来自分类Dev

正则表达式匹配一组字符,但前提是未对特定字符进行分组

来自分类Dev

正则表达式将第一组与“-”匹配

来自分类Dev

多行正则表达式匹配,直到找到下一组

来自分类Dev

正则表达式只匹配一组数字

来自分类Dev

正则表达式匹配最近的 <br> 标签,中间有一组单词

来自分类Dev

提取一组单词的正则表达式

来自分类Dev

使正则表达式仅匹配捕获组

来自分类Dev

如果组相同,则正则表达式匹配

来自分类Dev

正则表达式如何匹配匹配的组

来自分类Dev

正则表达式:如何捕获一组括号,而不是另一组

来自分类Dev

正则表达式以匹配字符序列和仅一种类型的符号

来自分类Dev

如何使一组正则表达式字符可选?

来自分类Dev

我将如何使用正则表达式输出一组特定的String Java?

来自分类Dev

如何在正则表达式中为一组条件定义量词?

来自分类Dev

Python正则表达式匹配上一组中匹配的内容(多个选项中的1个)

Related 相关文章

  1. 1

    如果仅重复一组符号,如何使正则表达式匹配?

  2. 2

    正则表达式仅匹配一组

  3. 3

    正则表达式:如果字符串以所需序列开头,则如何仅将内部子字符串与一组匹配

  4. 4

    如何使用 Python 和正则表达式替换符号之间的一组字母

  5. 5

    仅当最后一组正好是n个字符长时,正则表达式才匹配

  6. 6

    在正则表达式中仅返回一组具有 OR 条件的组

  7. 7

    正则表达式:需要匹配一组字符而不匹配另一组字符

  8. 8

    如何匹配正则表达式捕获组之后但仅直到下一个重复匹配的所有文本?

  9. 9

    正则表达式捕获一组的多个重复

  10. 10

    一组重复数字的正则表达式

  11. 11

    如何让Logstash删除与一组正则表达式不匹配的所有事件?

  12. 12

    如何创建可选择性匹配一组字符但忽略数字的正则表达式?

  13. 13

    有条件的正则表达式:仅返回一组

  14. 14

    正则表达式匹配行首或一组字符

  15. 15

    正则表达式匹配一组字符,但前提是未对特定字符进行分组

  16. 16

    正则表达式将第一组与“-”匹配

  17. 17

    多行正则表达式匹配,直到找到下一组

  18. 18

    正则表达式只匹配一组数字

  19. 19

    正则表达式匹配最近的 <br> 标签,中间有一组单词

  20. 20

    提取一组单词的正则表达式

  21. 21

    使正则表达式仅匹配捕获组

  22. 22

    如果组相同,则正则表达式匹配

  23. 23

    正则表达式如何匹配匹配的组

  24. 24

    正则表达式:如何捕获一组括号,而不是另一组

  25. 25

    正则表达式以匹配字符序列和仅一种类型的符号

  26. 26

    如何使一组正则表达式字符可选?

  27. 27

    我将如何使用正则表达式输出一组特定的String Java?

  28. 28

    如何在正则表达式中为一组条件定义量词?

  29. 29

    Python正则表达式匹配上一组中匹配的内容(多个选项中的1个)

热门标签

归档