Ios 这两个正则表达式匹配什么?
我想不出这个Ios 这两个正则表达式匹配什么?,ios,regex,Ios,Regex,我想不出这个regex匹配什么: A:“\\/\\/c\\/(\\d*)” B:“\\/\\/(\\d*)” 我想他们是在匹配某种数字序列,因为\d匹配任何数字,但我想知道一个字符串的示例,它将与这个正则表达式匹配 模式语法由指定。表达式是在iOS应用程序中使用创建的,并且是正确的。第一个匹配的是//c/+0或更多数字。第二个匹配/+0或更多数字。这两个数字都被捕获。 a)的匹配示例是//c/123 B)的匹配示例是//12345 编辑:这个答案来自一个Java人。这是错误的,因为这实际上是一个
regex
匹配什么:
A:“\\/\\/c\\/(\\d*)”
B:“\\/\\/(\\d*)”
我想他们是在匹配某种数字序列,因为\d
匹配任何数字,但我想知道一个字符串的示例,它将与这个正则表达式
匹配
模式语法由指定。表达式是在iOS应用程序中使用创建的,并且是正确的。第一个匹配的是
//c/
+0或更多数字。第二个匹配/
+0或更多数字。这两个数字都被捕获。- a)的匹配示例是
//c/123
- B)的匹配示例是
//12345
- 编辑:这个答案来自一个Java人。这是错误的,因为这实际上是一个C/C问题,直到得到答复后才清楚。查看下面的评论,不要投反对票。在我看来,它应该继续存在
这个正则表达式匹配一个奇怪的字符序列,乍一看,它几乎像一个正则表达式,因为
\d
是一个数字,后跟一个星号(\d*
)意味着零个或多个数字。但它不是一个数字,因为转义斜杠是转义的
\\/\\/c\\/(\\d*)
例如,这一个匹配以下文本:
\/\/c\/\
\/\/c\/\d
\/\/c\/\dd
\/\/c\/\ddd
\/\/c\/\dddd
\/\/c\/\ddddd
\/\/c\/\dddddd
...
这个几乎一样
\\/\\/(\\d*)
除了从上述结果中删除c\/
:
\/\/\
\/\/\d
\/\/\dd
\/\/\ddd
\/\/\dddd
\/\/\ddddd
\/\/\dddddd
...
在这两种情况下,最后的\
和可选的d
都是[capture group][1]一个
我的第一印象是这些正则表达式是用来转义Java字符串的,这意味着它们将完全无效。如果对Java字符串进行了转义,例如
Pattern p = Pattern.compile("\\/\\/c\\/(\\d*)");
它将无效,因为在取消转义后,它将导致此无效正则表达式:
\/\/c\/(\d*)
单个转义斜杠(\
)无效。但是\d
是有效的,因为它表示任何数字
但是,我也不认为它们是无效的,它们不是为Java字符串转义的。他们只是很奇怪
非常有趣。当我在Windows上使用模拟Bash的Cygwin时,我有时会遇到必须对转义字符进行转义的情况,我认为这使这个表达式看起来很奇怪。例如,当我使用sed查找单个'\'时,有时不得不将其写为'\\\'。(有趣的是,StackOverflow证明了我的观点。如果你在评论中写4个反斜杠,它只显示两个。因此,如果你再次处理它,它们可能会根据你的情况全部消失) 考虑到这一点,如果您来自类似的情况,那么将成对的反斜杠视为仅代表一个可能会有所帮助。我猜你是。正因为如此,我想说埃里克·杜梅林克可能是正确的人选。这将捕获一系列数字,这些数字可能跟随或不跟随两个斜杠和一个c: //c/000
//00000“ICU”指的是什么?@aliteralmind也许你可以随时学习正则表达式并找出它,第一个匹配
\/\/c\/
,然后是(\
和零个或多个d
)实例作为一个组。第二个是相同的,只是它与\/\/
匹配,而不是\/\/c\/
。添加语言和regex标记(Java、PCRE等)以及对ICU所指内容的解释。没有它们,你的帖子很难回答。我认为双“\”实际上是一个转义字符和一个反斜杠,就像你在C或C中使用的那样。(你有我一开始读的字面意思,直到看到匹配的文本毫无意义。我想Erik和John有。你是说这是C或C相当于Pattern p=Pattern.compile(\\/\\/C\\/(\\d*));
?我很确定是这样的。使用RegexBuddy生成的regex树,在每种情况下删除一个double\会使regex匹配的可能性更大。(不是向下投票,因为用户没有做任何澄清(比如添加所使用的语言)。)所以这是“错误的”,但我认为它应该留在这里(连同这些纠正性评论),因为其他非C/C的人可能会觉得它很有启发性。不要否决它,让我删除它,听到了吗?!(除了@KenWhite:)str1=“查找”{44}