StringRegExpReplace

首页  后退  前进

StringRegExpReplace
down2

StringRegExpReplace

正则表达式字符替换.

 

StringRegExpReplace ( "test", "pattern", "replace" [, count = 0] )

参数

test

目标字符串

表达式

正则表达式比较. 参考 StringRegExp 的详细讲解.

替换

替换匹配正则表达式匹配的文本. 插入匹配组文本, \0 - \9 (或 $0 - $9) 可以作为一个逆向引用. (见备注)

数量

[可选] 需要执行替换的次数. 默认 0, 全局替换.

返回值

成功:

返回基于正则表达式更新后的字符串. 检查 @extended 获取执行的替换数.

失败:

@error 设置 为非 0 值.

@error:

2 = 表达式无效. @extended = 表达式偏移误差.

备注

使用大括号从当前(替换)数分离反向引用, 比如:"5".

要替换 "" 字符, 必须使用两个相同字符. 这是一个反向引用机制的结果.

"" 与 "$" 替换格式是唯一有效的反向引用支持格式.

 

参阅 正则表达式 教程, 您可以在其中运行一个脚本来测试你的正则表达式.

 

函数示例

#include <MsgBoxConstants.au3>
Test1()
Test2()
Test3()
; This example demonstrates a basic replacement.  It replaces the vowels aeiou
; with the @ character.
Func Test1()
    Local $sInput = "Where have all the flowers gone, long time passing?"
    Local $sOutput = StringRegExpReplace($sInput, "[aeiou]", "@")
    Display($sInput, $sOutput)
EndFunc   ;==>Test1
; The following example demonstrates using back-references to change the date
; from MM/DD/YYYY to DD.MM.YYYY
Func Test2()
    Local $sInput = 'some text1 12/31/2009 01:02:03 some text2' & @CRLF & _
            'some text3 02/28/2009 11:22:33 some text4'
    Local $sOutput = StringRegExpReplace($sInput, '(\d{2})/(\d{2})/(\d{4})', ' $2.$1.$3 ')
    Display($sInput, $sOutput)
EndFunc   ;==>Test2
; The following example demonstrates the need to double backslash
Func Test3()
    Local $sInput = '%CommonProgramFiles%\Microsoft Shared\'
    Local $sOutput = StringRegExpReplace($sInput, '%([^%]*?)%', 'C:\\WINDOWS\\Some Other Folder$')
    Display($sInput, $sOutput)
EndFunc   ;==>Test3
Func Display($sInput, $sOutput)
    ; Format the output.
    Local $sMsg = StringFormat("Input:\t%s\n\nOutput:\t%s", $sInput, $sOutput)
    MsgBox($MB_SYSTEMMODAL, "Results", $sMsg)
EndFunc   ;==>Display

----------------------------------------

 

该函数可以通过命令 exect 调用

参见:

StringRegExp, StringReplace

例子
copy
$var_aa = 'Этот~~пример~~демонстрирует~~замену~~гласных~~на~~символ~~-'

$var_aa=StringRegExpReplace($var_aa,'[аяэеоёуюиы]','-')

 

exect=$var_s1=StringRegExpReplace('замена~~гласных~~на~~символ~~-','[аяэеоёуюиы]','-')||$var_s2=StringRegExpReplace('Удаляет~~<i>теги</i>~~в~~html','<i>(.*?)</i>','$1') GLOBALEXECT<a> ;; 使用正则表达式替换字符串文本

 

exect=$var_item=StringRegExpReplace(ClipGet(),'[\r\n]+','|') folds="%p"||[combo=BOX_XX] ;; 将列表从剪贴板传递到参数[combo]的示例

 

"exect=$var_s1=StringRegExpReplace('test~~del~~char~~b~~abcdabcd','[b]','''') GLOBALEXECT<a>" - 从字符串中删除字符"b"

 

up2

tcimage © Аверин Андрей для Total Commander Image Averin-And@yandex.ru