正则表达式查找搜索字段的结尾然后删除其余行

Regex Fine End of Search Field then remove rest of line

您好,我一直在寻找正则表达式,我可以找到我想要的大部分内容,但不太正确。

我正在尝试使用正则表达式查找替换,我可以开始工作,但不是我想要的方式。

我正在搜索的示例是


10/01/14PUT/a/users/84335httpetcetcetcete

10/01/14GET/a/users/663/badges?thisisatest

10/01/14GET/a/users/8836:thisisatestetc


我想做的是用户数字的末尾,如下所示,我临时输入的 % 我想删除该行的其余部分。


10/01/14PUT/a/users/84335%httpetcetcetcete

10/01/14GET/a/users/663%/badges?thisisatest

10/01/14GET/a/users/8836%:thisisatestetc


我一直在使用 s = s.regex.replace(s, "a/users/\d*", " ")

但这显然行不通,所以很接近。

非常感谢任何帮助。

非常感谢,VBVirg

怎么样:s = s.regex.replace(s, "(a/users/\d*).*", "")

这会将 "a/users/(digits)" 字符串保存到变量 (</code>),因此它不会被 <code>replace 函数删除。

我认为以下内容可以满足您的要求:

s = Regex.Replace(s, "^(.*\/users\/\d*).*$", "")

它的工作原理是捕获您感兴趣的字符串部分,然后仅用捕获的部分替换整个字符串。

您实际上是在正确的轨道上,您提出的正则表达式几乎就是您所需要的:

a/users/\d*

但是你的调用实际上是用 space.

替换了你想要保留的内容

您正在寻找的正则表达式更像这样:

(a\/users\/\d*).*$

您可以在 Replace() 方法中使用它,如下所示:

s = Regex.Replace(s, "(a\/users\/\d*).*$", "") />

是对捕获组的反向引用(括号中的正则表达式部分)。因此,这样做的目的是获取字符串中与正则表达式匹配的任何部分,并将其替换为捕获组中的内容。