English 中文(简体)
定期表达
原标题:Regular Expression rename
  • 时间:2011-07-06 16:23:02
  •  标签:
  • regex
  • ant

我写了一封信,把一本名录的内容移至另一个目录。 除了只是转移档案外,我还必须重新命名档案。

有些档案有结构名称1_ab_cd.properties,有些档案有结构名称2_ab.properties。 我基本上必须做的是,把所有东西从头到尾去,代之以财产。

因此,必须把档案称为姓名1.properties and name2.properties。 目前,我的执行情况如下:

<mapper type="regexp" from="(.*)_.*_.*(.*)" to="1.properties2" />

这些文件涉及两卷——但不是一号——名称1_ab_cd.properties将改名为1.properties,但名称2_ab.properties将保持不变。 如果我这样说:

<mapper type="regexp" from="(.*)_.*(.*)" to="1.properties2" />

那么,只有姓名2_ab.properties才会改名为2.properties,但名称1_ab_cd.properties将保持不变。

我只需要选择第一种——然后选择,直到扼杀结束。 我怎么做呢?

增 编

最佳回答

为此:

<mapper type="regexp" from="([^_.]+)[^.]*(.properties)" to="12" />
问题回答

经常表达是贪.的。 这就是说,它们与最大可能匹配。 like:

this_is_a_test

第一部分强调:

this_is_a_test =~ s/^(.*)_/$1/

括号中标出的只有this,但this_is_a_test,因为这个比例最大。 这是因为我告诉它,要把一切都与强调相匹配。

围绕诸如排除我所希望的特性等内容的基本方式。 例如:

this_is_a_test =~ s/^([^_]*)_/$1/

替换*,该编码与任何系列特性对应的[^_]*,与任何系列特性相匹配。 这样,你只能满足第一线的要求。

事实上,我们可以消除分组之后的强调:

this_is_a_test =~ s/^([^_]*)/$1/

因此,你们必须做的是从:

<mapper type="regexp" from="(.*)_.*(.*)" to="1.properties2" />

to

<mapper type="regexp" from="^([^_]*).*.properties$" to="1.properties"/>

<代码>^([__]*)将从线一开始直至第一线。 <代码>properties$将确保文档名称结尾处有.properties

我不肯定你第二组别的工作。 (你是否试图在<条码>后搬出部分座标? 相反,正如你在最初问询中指出的那样,我只是这样做的。





相关问题
Uncommon regular expressions [closed]

Recently I discovered two amazing regular expression features: ?: and ?!. I was curious of other neat regex features. So maybe you would like to share some tricky regular expressions.

regex to trap img tag, both versions

I need to remove image tags from text, so both versions of the tag: <img src="" ... ></img> <img src="" ... />

C++, Boost regex, replace value function of matched value?

Specifically, I have an array of strings called val, and want to replace all instances of "%{n}%" in the input with val[n]. More generally, I want the replace value to be a function of the match ...

PowerShell -match operator and multiple groups

I have the following log entry that I am processing in PowerShell I m trying to extract all the activity names and durations using the -match operator but I am only getting one match group back. I m ...

Is it possible to negate a regular expression search?

I m building a lexical analysis engine in c#. For the most part it is done and works quite well. One of the features of my lexer is that it allows any user to input their own regular expressions. This ...

regex for four-digit numbers (or "default")

I need a regex for four-digit numbers separated by comma ("default" can also be a value). Examples: 6755 3452,8767,9865,8766,3454 7678,9876 1234,9867,6876,9865 default Note: "default" ...

热门标签