首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PERL如何将字符串分组不在同一行中

PERL(Perl)是一种计算机程序语言,主要用于文本处理、系统管理和网络编程。在处理字符串时,PERL提供了一些内置函数和语法来方便地实现字符串的分组、过滤和转换。以下是如何使用PERL将字符串分组不在同一行中的示例:

代码语言:perl
复制
# 定义要分组的字符串
my $string = "apple,banana,orange,grape";

# 使用split命令和正则表达式将字符串以逗号分隔,并将结果存储在数组中
my @array = split /,/, $string;

# 使用for循环遍历数组,并将每个元素添加到新的字符串中,用逗号分隔
for my $element (@array) {
    push @new_array, $element;
}

# 将新数组转换为字符串,并用逗号分隔各个部分
my $new_string = join ",", @new_array;

# 输出结果
print $new_string;

以上代码将输出如下结果:

代码语言:txt
复制
apple,banana,orange,grape

在这个示例中,我们使用了PERL的内置split函数来将字符串以逗号分隔,然后使用for循环遍历数组,将每个元素添加到新的数组中,最后再将新数组转换为字符串,并使用逗号分隔各个部分。这种方法可以将字符串分组不在同一行中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

浅析JavaScript正则表达式

1.直接量定义(perl风格,本人较习惯用直接量):var reg = /exp/attributes   var pattern = /ccy$/;//匹配以ccy结尾的字符串; 注:同一段代码所表示的正则表达式每次运行时直接量会转换成不同的...不在方括号内的任意字符 ....只组合,把项组合到一个单元,但不记忆与改组相匹配的字符 \n 和第n个分组第一次匹配的字符相匹配,组是圆括号的子表达式(也可能是嵌套的),组索引是从左到右的左括号数,(?....允许在同一正则表达式的后部引用前面的子表达式,引用的是实例而非匹配模式。...6.指定匹配位置 正则表达式匹配位置是一个难点 锚字符与断言 字符 含义 ^ 匹配字符串的开头,在多行检索匹配一的开头 $ 匹配字符串的结尾,在多行检索匹配一的结尾 \b 匹配一个单词的边界

1.6K30

PERL学习笔记---正则表达式的应用

\n”; } 如果不使用/s,那么上述模式将不能被匹配上,因为这两个字符不在同一。 符号^(脱字字符◆)表示在字符串的开头进行匹配,而符号$则表示在结尾◆。...这同字处理软件的“全字匹配(match whole words only)”是类似的。 ◆某些正则表达式实现开头的锚定和结尾锚定不同,但Perl 均使用\b。...绑定操作符(binding operator:=~) ),$likes_perl 将根据用户的输入而得到一个boolean 值。它有一些quick-and-ditry,因为输入 很快就被丢弃了。...匹配变量 我们曾经在模式中使用过括号,使用括号是由于它可以将模式的某一部分组合起来。同时括号也会引起正则表达式分配新 的内存块。这些内存含有括号的模式所匹配的字符串。...每一个内存块内有 一段字符串,而非模式的一部分。 由于这些变量含有字符串,那它们是标量变量;在Perl ,它们具有像$1, $2 这样的名字。变量个数同模式括号对数的个 数是相同的。

68330

Perl正则表达式超详细教程

所以,我把如何使用perl正则来匹配数据放在最开头介绍,包括匹配指定字符串、匹配变量、匹配标准输入(如管道传递的数据)以及匹配文件的每一数据,而且后文我假设各位和我当初一样,完全没有perl语言基础...版本,如果使用同一个正则表达式做多次匹配,正则引擎将只多次编译正则表达式。...很多时候正则表达式并不会改变,比如循环匹配文件,这样的多次编译导致性能下降很明显,于是可以使用o修饰符让正则引擎对同一个正则表达式不重复编译。...在perl5.6,默认情况下对同一正则表达式只编译一次,但同样可以指定o修饰符,使得即使正则表达式变化了也不要重新编译。 一般情况下,可以无视这个修饰符。 范围模式匹配修饰符(?...(abc)去匹配字符串,因为发现了是分组括号,于是会将第二个字符2放进分组,发现不匹配字母a,于是匹配失败,丢弃这个分组的内容。

6.1K30

Perl快速入门学习

返回的数据任然是一个字符串,只是这个字符串可能包含多个逻辑; Perl数据类型: 数值 字符串 数组 Hash(哈希) 注意事项: Perl通常情况是不区分整数和浮点数; Perl运算操作符: 赋值...demo2.pl 1024 + 1 = 1025 1+..+3+...+7+100 = 5050 Perl正则表达式 描述:perl和Egrep属于同一个流派,Perl支持Regex的一些修饰符的使用并且...Perl正则表达式的元字符更多; $variable=~ m/regularExpression/i #来判断一个正则表示是是否能匹配某个字符串; #整个测试语句作为一个单元返回boolean类型返回...如果只是希望分组,也可以使用()但副作用是他们捕获的文本任然会保存在特殊的变量之中; 3.Perl正则的环视功能 (?...在使用正则匹配的需要对$和@需要转义 $符号既可以作为字符串结束字符,又可以在Perl作为标记变量; @情况与之类似,Perl用@表示数组名,在Perl字符串或者正则表达式也可以容许出现数组变量

2.4K20

正则表达式介绍与使用

验证正则表达式工具: egrep #在Linux和windows平台中都有,值得注意的时候当egrep在正则匹配时候,会把换行符替换掉拼接下一的字符; Perl #提供的元字符和操纵能力远远多于...例如'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。...与*之类的量词作用 分组和反向引用 基础符号: () #限制多选项范围,组成单元字符串,分组重复利用,注意要匹配圆括号字符,请使用 '\(' 或 '\)'。...\1 - \n #表示反向引用第几个()括号匹配的字符串文本;即括号能够记忆其中的子表达式匹配的文本; 基础示例: #示例1.\1代表匹配的前面的一个分组[a-z],\2代表了后面的一个分组\2 echo...注意事项: 尽管反向引用非常实用,但是它任然有它的局限性;因为egrep把每行文件都当做一个独立部分来看待(当匹配行尾与首的字符时候容易出现BUG); 非捕获组 描述:它只用于分组,而不会影响文本的捕获和变量的保存

1.5K20

Perl快速入门学习

返回的数据任然是一个字符串,只是这个字符串可能包含多个逻辑; Perl数据类型: 数值 字符串 数组 Hash(哈希) 注意事项: Perl通常情况是不区分整数和浮点数; Perl运算操作符: 赋值...demo2.pl 1024 + 1 = 1025 1+..+3+...+7+100 = 5050 ---- Perl正则表达式 描述:perl和Egrep属于同一个流派,Perl支持Regex的一些修饰符的使用并且...Perl正则表达式的元字符更多; $variable=~ m/regularExpression/i #来判断一个正则表示是是否能匹配某个字符串; #整个测试语句作为一个单元返回boolean类型返回...如果只是希望分组,也可以使用()但副作用是他们捕获的文本任然会保存在特殊的变量之中; 3.Perl正则的环视功能 (?...在使用正则匹配的需要对$和@需要转义 $符号既可以作为字符串结束字符,又可以在Perl作为标记变量; @情况与之类似,Perl用@表示数组名,在Perl字符串或者正则表达式也可以容许出现数组变量

1.3K20

正则表达式介绍与使用

验证正则表达式工具: egrep #在Linux和windows平台中都有,值得注意的时候当egrep在正则匹配时候,会把换行符替换掉拼接下一的字符; Perl #提供的元字符和操纵能力远远多于egrep...例如'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。...与*之类的量词作用 分组和反向引用 基础符号: () #限制多选项范围,组成单元字符串,分组重复利用,注意要匹配圆括号字符,请使用 '\(' 或 '\)'。...\1 - \n #表示反向引用第几个()括号匹配的字符串文本;即括号能够记忆其中的子表达式匹配的文本; 基础示例: #示例1.\1代表匹配的前面的一个分组[a-z],\2代表了后面的一个分组\2 echo...注意事项: 尽管反向引用非常实用,但是它任然有它的局限性;因为egrep把每行文件都当做一个独立部分来看待(当匹配行尾与首的字符时候容易出现BUG); 非捕获组 描述:它只用于分组,而不会影响文本的捕获和变量的保存

1.1K10

vim 正则表达式

(像perl 那样), 势必会给不懂正则表达式的人造成麻烦,比如 /foo(1) 命令, 大多数人都用它来查找foo(1)这个字符串, 但如果按照正则表达式来解释,被查找的对象就成了 foo1 了。....* # 查找任意字符串 /\M.* # 查找字符串 .* (点号后面跟个星号) 另外还有更强大的 \v 和 \V。...0个或1个(忽略优先) 从上表可见,vim的忽略优先量词不像perl的 *? +? ?? 那样,而是统一使用 \{- 实现的。 这大概跟忽略优先量词不常用有关吧。...环视和固化分组 vim居然还支持环视和固化分组的功能,强大,赞一个 关于环视的解释请参考Yurii的《精通正则表达式》 一书吧。 vim Perl 意义 \@= (?= 顺序环视 \@! (?!...> 固化分组 \%(atom\) (?: 非捕获型括号 和perl稍有不同的是,vim的环视和固化分组的模式的位置与perl不同。

1.4K30

Perl正则表达式:正则匹配

*xyz/is #忽略大小写并使点号匹配任意字符 ⑶锚位 从Perl 5开始,脱字符^和$表示首和行尾的锚位,这对输入的数据非常有用,因为输入的字符串有且只有一个换行符在末尾。...对于具有多个换行符的字符串,也即多行文本数据变量,可以使用//m修饰符,使得脱字符^和$可以同时锚定字符串开头、每一开头、字符串结尾、每一结尾,如下所示: $_ = "This is the wilma...\n"; } 上面代码如果不加//m修饰符则^只会匹配字符串开头从而匹配失败。此外还有另一种更严谨的锚位方法,使用\A、\Z、\z锚定字符串的开头、每一末尾、字符串结尾。...需要注意的是对于输入的单行字符串来说\Z、\z也是完全不同的,\Z会匹配换行符前的内容,而\z匹配字符串结尾(包括换行符)内容。...$what可以是任何值,甚至是正则表达式元字符,如下所示: ⑸捕获变量 在上一小节正则表达式的模式分组,我们知道圆括号通常会触发正则表达式捕获相匹配的字符串以供反向引用。

4.1K10

Perl正则表达式详解

候选(匹配一个或另一个) (…) 是 分组(当做一个单元) […] 是 字符类(匹配一组的字符) ^ 否 如果在字符串开头(或者可能在某个换行符后面)则为true ....|…|…|…) 是 为编号分组重置分支 (?…) 是 命名捕获分组,也记为(?‘NAME’…). (?{…}) 否 执行嵌入的Perl代码 (??{…}) 是 匹配嵌入Perl代码的正则表达式 (?...true \b 是 匹配退格字符(BACKSPACE,BS)(只在字符类) \b 否 在单词边界时为true \B 否 不在单词边界时为true \c X 是 匹配控制字符Control-X(\cZ,...匹配除垂直空白符以外的任何字符 \w 是 匹配任何”单词”字符(字母,数字,组合标记和连接符号) \W 是 匹配任何非单词字符 \x{abcd} 是 匹配用十六进制给定的字符 \X 是 匹配字形簇(不在字符类...<=worlds|world) Gao/; # 报错 在PCRE,这种变长的逆序环视锚定可重写为(?<=word|words),但perl不允许,因为perl严格要求长度必须固定。

77630

Perl正则表达式(2) – 用正则表达式进行匹配

捕获组会把匹配括号模式的字符串保存到相应变量; 如果不止一个括号,也就不只一个捕获组; 每个捕获组存储的是原始字符串的内容,而不是模式本身,可以反向引用取得这些内容,如(ab)\1。...捕获变量只应该在匹配成功时使用,否则得到的就是上次匹配成功的值,这可能不是我们想要的结果; 由于捕获变量的生命周期较短,当使用捕获变量时只应该在模式匹配成功后的数行内使用; 如果希望在数之外使用,最好将其复制到某个普通变量...;如my here = 1; 2.5.2 禁用捕获的括号 目前正则表达式的括号都会自动捕获匹配的字符擦混,但是有些时候我们希望关闭这个功能; 只是用圆括号来分组,或者是使程序结构清晰,更容易读懂。...:)关闭第一个模式分组的捕获功能,这样我们可以是使用$1来引用第二个分组的内容; if (/(bronto)?...\w+) 当这个模式分组匹配成功后,可以使用$name1取得匹配的字符串

2.1K20

Golang的RegExp正则表达式用法指南

匹配“字符类”外的一个字符,“字符类”见后面的说明 \小写Perl标记 匹配“Perl类”的一个字符,“Perl类”见后面的说明 \大写Perl标记...匹配“Perl类”外的一个字符,“Perl类”见后面的说明 [:ASCII类名:] 匹配“ASCII类”的一个字符,“ASCII类”见后面的说明 [:^ASCII...如果“分组引用符”是 $name 的形式,则在解析的时候,name 是取尽可能长的字符串,比如:$1x 相当于 ${1x},而不是${1}x,再比如:$10 相当于 ${10},而不是 ${1}0。...123 "] // 查找首以 H 开头,以空白结尾的字符串(非贪婪模式) reg = regexp.MustCompile(`(?U)^H....\E`) fmt.Printf("%q\n", reg.FindAllString(text, -1)) // ["Go."] // 查找从首开始,以空格结尾的字符串(非贪婪模式) reg

7.1K30

刨根究底正则表达式之二——正则表达式基础

\PP、\s、\S、\v(仅Perl系)、\V、\w、\W 进制转义字符:\octal-num(Perl也可写作\o{octal-num})、\xhex-num(Perl也可写作\x{hex-num...当正则引擎在字符串查找匹配时,可以认为在字符串中有一个匹配定位指针,该指针可以在字符串的各个位置之间移动(一般是从左到右依次移动,但回溯时也会从右向左移动;另外,.Net还支持从右向左匹配)。...当然,绝大部分情况下,均是从字符串的起始位置开始匹配的。 当在某个位置尝试匹配失败,正则引擎将移动字符串的匹配定位指针到字符串的下一个位置开始继续尝试匹配。...如果该子表达式匹配的仅仅是位置,或者虽然匹配了字符,但最终并不实际移动字符串的匹配定位指针(比如预查分组),那么就认为这个语法元素是不占有字符的,即属于零宽度的。...; 2)  最长原则(即长度优先原则):如果在字符串的某个位置存在多个可能的匹配,将返回最长文本(即最多字符)的那个匹配; 3)  先到先得原则(即顺序优先原则):在同一个位置上,如果有多个长度不同的匹配结果

1.1K50

Vim给文件加行号,这通惊为天人的操作没sei了!文末天书慎点

本文展示了如何将行号插入到正文中,或者只插入到段落。此外,还提供了打印行号的选项(Vim 可以打印带有数字的,并且不需要文件有数字)。 ?...模式 ^ 匹配每一的开头,\= 表达式使用 printf() 来格式化当前行的数字: %-4d 是一个左对齐的整数, 如果需要,可以通过在4列的宽度添加空格来填充, %4d 是右对齐的,%04d....") - line("'<") + 1) 上面的示例的格式字符串是“%d”。它插入一个左对齐的数字,后跟一个句点,和一个制表符TAB。选定范围内的每一都进行了编号。....") - line("'<") + 1) 在上面的代码,空白被计数,但是没有插入数字(如果第4是空的,那么插入的数字将是1、2、3、5、6)。...perl :1,$!perl -ne \"printf(\\"\%3d:\%s\\",\$.,\$_);\" Happy coding :-)

2.5K20

js数字正则-JavaScript正则表达式

分组匹配   一个简单的字符就可以是一个匹配模式,但是现实情况往往不会这么简单。...范围匹配   上一个例子使用了分组匹配,但是如果要匹配所有26个英文字母,还要包括大小写,仍然可以使用分组匹配: var reLetter = /abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ...而在惰性模式,”.?”只进行最小限度的匹配,所以完整的输出了我们需要的字符串。   惰性模式的语法很简单,即是在贪婪模式后面加上一个“?”即可。   ...;   如何将单词“do”匹配出来?it’s easy!...这样,^不但匹配正常的字符串开头,还将匹配分隔符(换行符)后面的开始位置;$不仅匹配正常的字符串结尾,还将匹配分隔符(换行符)后面的结束位置。

5.6K20

JavaScript 正则表达式介绍

它被用来在文本执行模式匹配(pattern-matching)以及”查找-替换”(search-and-replace)的任务。javascript中正则的风格类似Perl中正则的风格。...查找单个字符,除了换行和结束符。 \w 查找单词字符(字母、数字以及下划线”_”)。 \W 查找非单词字符。 \d 查找数字。 \D 查找非数字字符。 \s 查找空白字符。...正则表达式的括号 大括号 () 进行分组。...[^abc] 查找任何不在方括号之间的字符。 [0-9] 查找任何从 0 至 9 的数字。 [a-z] 查找任何从小写 a 到小写 z 的字符。...[^adgk] 查找不在方括号内的任何字符。 量词 匹配多个。如匹配3个数字可用正则/\d{3}/。 n+ 匹配任何包含至少一个 n 的字符串。 n* 匹配任何包含零个或多个 n 的字符串

55630

Perl正则表达式:字符与字符集

Perl,反斜杠\就是一个特殊的元字符,要想匹配元字符本身(而不是他在正则表达式里面的含义),可以在相应的元字符之前加反斜杠,例如'\.'...、'\*'、'\\'就分别匹配文本的'.'、'*'、'\'。此外元字符^匹配首,在集合字符[]内部表示补集,元字符$则匹配行尾。...⑵模式分组与捕获 在Perl的正则表达式,圆括号()也是一个特殊的元字符,用来对字符串进行分组,很多元字符只对单个字符进行操作,进行分组后可对多个字符进行操作,如下所示: fred+ #可匹配freddddd...例如[abcxyz]可以匹配出现在字符串的a、b、c、x、y、z的任一个,相连的字符中间可以使用连字符-表示范围,例如上式可以写为[a-cx-z],如果在集合内包含连字符本身(而不是表示范围的含义)...在集合开头添加脱字符^可以取补集,例如[^0-9]会匹配除数字以外的字符。

1.1K20

PHP的正则表达式及模式匹配

m(PCRE_MULTILINE) 默认情况下,PCRE 将目标字符串作为单一的一“”字符所组成的(甚至其中包含有换行符也是如此)。...“起始”元字符(^)仅仅匹配字符串的起始,“结束”元字符($)仅仅匹配字符串的结束,或者最后一个字符是换行符时其前面(除非设定了 D 修正符)。这和 Perl 是一样的。...当设定了此修正符,“起始”和“结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。这和 Perl 的 /m 修正符是等效的。...如果目标字符串没有“\n”字符或者模式没有 ^ 或 $,则设定此修正符没有任何效果。...x (PCRE_EXTENDED) 如果设置了这个修饰符, 模式的没有经过转义的或不在字符类的空白数据字符总会被忽略, 并且位于一个未转义的字符类外部的#字符和下一个换行符之间的字符也被忽略.

2.9K20
领券