我似乎无法让它工作。我正在尝试匹配文本“job XXXXXXX”,其中 X 是一个整数。
好像破解不了 我知道它很简单,但正则表达式不是我的事。
这就是我正在使用的。任何帮助,将不胜感激。
^[job\s]([0-9]{7}$)
谢恩
^job\s+\d+$
^ 匹配字符串的开头
工作 - 错误..工作
\s+ 一个或多个空格
\d+ 一个或多个数字
$ 字符串结尾
如果您需要号码,您可以使用
^job\s+(\d+)$
\d+ 周围的括号会将数字放入一个组中,您可以在比赛后参考。
编辑:由于您编辑了原始帖子,让我告诉您为什么您编辑的正则表达式不起作用:
^[job\s]([0-9]{7}$)
正则表达式中的 [] 创建一个字符集。这意味着正则表达式正在尝试匹配字母 j或字母 o或字母 b或空白字符,然后是数字。
编辑 2:
匹配一个字符串,如:
string x = @"Please refer to job 1000000 for more information";
你需要一个稍微不同的正则表达式。您不想使用 ^ 匹配字符串的开头或使用 $ 匹配结尾,因为显然这与整行不匹配。
相反,你会想做这样的事情:
Console.WriteLine(Regex.Replace(x,@"job\s+(\d+)","REDACTED!!"));
如果您想引用替换中的数字,可以执行以下操作:
Console.WriteLine(Regex.Replace(x, @"job\s+(\d+)", "Super Awesome Job: $1"));
它的正则表达式将是^JOB\s\d{5}$其中 5 是整数位数。如果计数不固定,则^JOB\s\d+$