我没有在PHP中使用正则表达式的经验,所以我通常使用一系列str_replace()、substr()、strpos()、str str str()等来编写一些卷积函数(你知道的)。
这次我想正确地执行这个操作,我知道我需要使用一个regex来完成这个操作,但是对于使用什么(ereg或preg),以及语法应该是怎样的,我感到困惑。
注意:我不分析HTML或XML,有时我会使用除(例如,或~或[标记]或::)之外的分隔符。我正在寻找使用regex在两个已知分隔符之间进行通配符替换的通用方法,我不构建HTML或XML解析器。
我需要的是一个regex来代替这个:
everything in here
new contents
我已经在网上阅读了一些文档,但是我很困惑,我希望你们中的一个regex专家能提出一个简单的解决方案。我怀疑我会将这些值传递给一个函数,如下所示:
$new_text = swapText ( "", $the_new_text_to_go_into_the_dag );
function swapText ( $in_tag_with_brackets_to_update, $in_new_text ) {
// define tags
$starting_tag = $in_tag_with_brackets_to_update;
$ending_tag = str_replace( "
// not sure if this is the proper regex match string or not
// and/or if any escaping needs to be done on the tags
$find_string = "{$starting_tag}.*{$ending_tag}";
$replace_with_string = "{$starting_tag}{$in_new_text}{$ending_tag}";
// after some regex, this function should return new version of data
我没有在PHP中使用正则表达式的经验,所以我通常使用一系列str_replace()、substr()、strpos()、str str str()等来编写一些卷积函数(你知道的)。这次我想正确地执行这个操作,我知道我需要使用一个regex来完成这个操作,但是对于使用什么(ereg或preg),以及语法应该是怎样的,我感到困惑。注意:我不分析HTML或XML,有时我会使用除(例如,或~或[标记]或...
其
中
,-i选项表示直接修改文件,oldstring表示需要
替换
的字符,newstring表示
替换
后的字符,g表示全局
替换
。
2. 如果需要
替换
多个文件,可以使用
通配符
,例如:
sed -i 's/oldstring/newstring/g' *.txt
这样就可以
替换
所有txt文件
中
的oldstring为newstring。
3. 如果需要
替换
的字符
中
包含特殊字符,需要使用转义符号,例如:
sed -i 's/\/home\/user\/oldstring/\/home\/user\/newstring/g' filename
其
中
,\/表示/字符的转义。
希望以上回答能够帮到您。
### 回答2:
sed是一种流编辑器,常用于对文本进行编辑和转换。其
中
一个常见的功能就是对字符串
中
的字符进行
替换
。在sed
中
,可以使用s命令来进行
替换
操作。
s命令的基本格式为:s/pattern/replacement/options
其
中
,pattern表示要匹配的字符串模式,它可以是一个正则表达式。replacement表示要
替换
成的字符串,options则是可选参数,可以控制
替换
的方式和范围。
例如,要将文本文件
中
所有的"apple"
替换
成"orange",可以使用以下命令:
sed 's/apple/orange/g' filename
在这个命令
中
,s表示
替换
操作,/g表示全局
替换
。这样,sed将会匹配所有的"apple"字符串,并将它们
替换
成"orange"。
除了直接
替换
字符串外,sed还支持一些高级
替换
操作。比如,在
替换
文本时,可以使用正则表达式来匹配更加复杂的模式。此外,还可以使用
替换
命令来删除或插入内容,以及将
替换
结果保存到文件
中
。
总之,sed是一个非常强大的字符串
替换
工具,可以帮助我们高效地编辑和处理文本文件。在处理大量文本时,掌握sed的基本用法和高级技巧,将为我们的工作带来很大的便利。
### 回答3:
sed是一种流编辑器,用于对文本进行处理并进行
替换
、删除、添加等操作。在sed
中
,
替换
字符串
中
的字符是一种常见的操作。下面介绍sed
替换
字符串
中
的字符的基本语法和用法。
语法格式:
sed 's/要
替换
的字符/
替换
成的字符/g' 文件名
其
中
,s为
替换
字符串的命令,/要
替换
的字符/为要
替换
的字符,/
替换
成的字符/为要
替换
成的字符,g为全局
替换
标志,表示
替换
所有出现的目标字符串,如果不加g标志,则只
替换
第一个出现的目标字符串。文件名为要执行
替换
操作的文件名,如果不指定文件名,则默认使用标准输入。
例如,执行以下命令:
sed 's/old/new/g' input.txt
表示要
替换
input.txt文件
中
所有的old为new。
除了简单的字符
替换
外,sed还支持正则表达式的
替换
操作。例如,执行以下命令:
sed 's/^[a-z]/&\./g' input.txt
表示要将input.txt文件
中
所有以小写字母开头的行的第一个字符
替换
为此字符和一个点,即在每个匹配字符前添加一个点。
此外,sed还支持将
替换
后的结果写入新文件、
替换
某
一行
的某个字符等高级用法。在使用sed进行字符串
替换
时,需要注意正则表达式的使用和目标字符串的特殊字符转义。