我想找到匹配:
\ 024jack3hall的 2 \ C $
\ 024jack3hall的 02 \ C $
\ 024jack3hall的 12 \ C $
但不适用于:
\ 024jack3hall的 023 \ C $
差异是结尾部分的位数。我想只有1或2,而不是3
我的尝试:
\\\\024[a-zA-Z0-9]+[0-9]{1,2}\\[a-zA-Z]{1}\$(?!.)
我只在http://regexr.com/上尝试过,但会在C#中实现 是否可以编辑我的尝试,或者我必须编写几个单独的检查? 为什么是
{1,2}
不工作? \ 024jack3hall 12343 \ c $也匹配,
答案 0 :(得分:4)
来自您展示的示例,简单如下:
[^\d](\d{1,2})\\
应该有效。它将匹配1或2位数字后跟\
,只要它不是由另一个数字继续。
如果您需要,匹配的数字位于捕获组中(或者如果您不需要,则可以删除括号。)
至于你最初的努力,就在这里:
\\\\024[a-zA-Z0-9]+[0-9]{1,2}
您匹配范围a-z
,A-Z
或 0-9
中的一个或多个。如果它们出现在该模式的末尾,那么这将匹配您的额外数字。
答案 1 :(得分:0)
答案:
\\\\024[a-zA-Z0-9]+[^\d](\d{1,2})\\[a-zA-Z]{1}\$(?!.)
答案 2 :(得分:0)
我相信你没有正确地逃避反斜杠。 这是正确的正则表达式:
\\024[a-zA-Z0-9]+[0-9]{1,2}\\[a-zA-Z]{1}\$(?!.)