正则表达式查找和替换保留案例

时间:2014-02-20 08:21:10

标签: regex flashdevelop

我想在查找和替换对话框中使用RegExp。这样:

abcd ==> replaced by ==> efgh 

Abcd ==> replaced by ==> Efgh

ABCD ==> replaced by ==> EFGH

aBcD ==> replaced by ==> eFgH

我知道RegExp可以帮助我找到特定的匹配。但我怀疑我正在寻找的是RegExp可以做到的。随着匹配在单词的不同实例中发生变化。

2 个答案:

答案 0 :(得分:0)

你最好找到另一个工具/功能。

例如,在ruby中,您可以使用String#tr

from, to = 'abcd', 'efgh'
mapping = from + from.upcase, to + to.upcase # mapping = 'abcdABCD', 'efghEFGH'
'abcd'.tr(*mapping) # => "efgh"
'Abcd'.tr(*mapping) # => "Efgh"
'ABCD'.tr(*mapping) # => "EFGH"
'aBcD'.tr(*mapping) # => "eFgH"

在shell中:

$ echo aBcD | tr abcdABCD efghEFGH
eFgH

如果你真的想使用正则表达式,你可能需要传递某种回调函数。

在评论中使用Maroun Maroun的想法。

'aBcD'.gsub(/[abcd]/i) { |x| (x.ord + 4).chr }
# => "eFgH"

答案 1 :(得分:0)

使用正则表达式无法执行此操作。

您需要增加ASCII值。

Cmdlet的

# Powershell v 3.0

Param(
    [string]$string,
    [int]$increment
)

$string.GetEnumerator() | % {
    $new_string += [char]([int]$_+$increment)
}

return $new_string

使用Cmdlet

PS C:\> @("abcd","Abcd","ABCD","aBcD") | % {
>>     .\incChars.ps1 -string $_ -increment 4
>> }
efgh
Efgh
EFGH
eFgH