Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式匹配所有内容,直到/_Regex_Ant - Fatal编程技术网

Regex 正则表达式匹配所有内容,直到/

Regex 正则表达式匹配所有内容,直到/,regex,ant,Regex,Ant,使用正则表达式(Ant中的replaceregexp)如何匹配(然后替换)从一行开始到最后一次出现的斜杠的所有内容 我需要的是从以下任何一项开始: ../../替换此/保留此 ../replace\u this/替换\u this/保留\u this /../../replace\u this/替换\u this/保留\u this 把它们变成这样: 我补充了什么?记住这一点 看起来应该很简单,但我不明白。我已经创建了正则表达式,它将标识最后一个斜杠并从那里匹配到行尾,但我需要的是一个将从行首到

使用正则表达式(Ant中的replaceregexp)如何匹配(然后替换)从一行开始到最后一次出现的斜杠的所有内容

我需要的是从以下任何一项开始:

../../替换此/保留此

../replace\u this/替换\u this/保留\u this

/../../replace\u this/替换\u this/保留\u this

把它们变成这样:

我补充了什么?记住这一点

看起来应该很简单,但我不明白。我已经创建了正则表达式,它将标识最后一个斜杠并从那里匹配到行尾,但我需要的是一个将从行首到最后一个斜杠的所有内容都匹配的正则表达式,这样我就可以全部替换它

这是一个Ant构建文件,它读取一堆.txt文件并转换其中找到的任何链接。我只想使用replaceregexp,而不是变量或属性。如果可能。

您可以匹配以下内容:

.*\/
并替换为您的文本


选项1

  • 搜索:
    ^.*/
  • 替换:
    空字符串
  • 因为
    *
    量词是贪婪的,
    ^.*/
    将从行首到最后一个斜杠匹配。所以你可以直接用一个空字符串替换它,剩下的是你想要的文本
选项2

  • 搜索:
    ^.*/(.*)
  • 替换:组1(通常,语法为
    $1
    \1
    ,不确定Ant)
  • 同样,
    ^.*/
    与最后一个斜杠匹配。然后用
    (.*)
    捕捉到组1的行尾,并用组1替换整个匹配项
  • 在我看来,没有理由选择这个选项,但最好能理解它

您要做的是贪婪匹配,这是模式的最长匹配,通常是默认值,但匹配到“/”的最后一个实例

可能是这样的:

 .*\/
说明:

. any character
* any and all characters after that (greedy)
\/ the slash escaped, this will stop at the **last** instance of '/'

您可以在此处看到它的作用:

对于选项2,这可能更容易:
[^\/]*$
@Markus您是对的,它与字符串的结尾非常匹配。:)我需要从上一个斜杠匹配-这是一个解决方案:谢谢你的信息,是的,第一个答案完全解决了它,我曾尝试单击“投票”,但它说我需要15分才能投票,但我不知道复选标记选项,即使是像我这样的新手也可以使用,所以谢谢,我现在已经选中了那个选项。所有关于regexp的答案都很有趣,但第一个答案已经为我解决了。我应该“接受”一切吗?再次感谢。顺便说一句,我上面的“谢谢你的信息”评论是对一条评论的回应,现在已经消失了,从有人告诉我复选标记功能到“接受”答案。我需要与此相反的-匹配字符的最后一个实例的结尾-这是一个解决方案: