Perl 正则表达式将多行转换为单行
Perl regex transform multiline to a single line
我在将多行字符串转换为单行字符串时遇到了一些问题。
我有这样的字符串:
#66 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3,
( #62, #61, #105, #104, #103, #102, #101, #100, #99, #98 ),
.UNSPECIFIED., .F., .F.,
( 4, 3, 3, 4 ),
( 7.785145389033986000E-018, 0.0001260065739121398800, 0.0001891785121403045300, 0.0002523514299847038200 ),
.UNSPECIFIED. ) ;
但我需要它作为一整行。
这是我试过的:
/^#[0-9].*;)$/s/
我正在尝试做的事情:
#[0-9]
这里指向#66
。 #[0-9]
的原因是它需要动态。
.*
这指向 ;
之间的所有内容
;
这指向行尾。但不幸的是它不起作用。
我现在的正则表达式:
/([^\n]*)\n* /g
这样做:
([^\n]*)\n* /g
只捕获除换行符以外的所有内容,直到每行遇到换行符。
然后替换为捕获的组
不清楚你在问什么。我想你是在问如何从字符串中删除换行符。这可以通过以下方式实现:
$str =~ s/\n//g;
我在将多行字符串转换为单行字符串时遇到了一些问题。
我有这样的字符串:
#66 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3,
( #62, #61, #105, #104, #103, #102, #101, #100, #99, #98 ),
.UNSPECIFIED., .F., .F.,
( 4, 3, 3, 4 ),
( 7.785145389033986000E-018, 0.0001260065739121398800, 0.0001891785121403045300, 0.0002523514299847038200 ),
.UNSPECIFIED. ) ;
但我需要它作为一整行。
这是我试过的:
/^#[0-9].*;)$/s/
我正在尝试做的事情:
#[0-9]
这里指向#66
。 #[0-9]
的原因是它需要动态。
.*
这指向 ;
;
这指向行尾。但不幸的是它不起作用。
我现在的正则表达式:
/([^\n]*)\n* /g
这样做:
([^\n]*)\n* /g
只捕获除换行符以外的所有内容,直到每行遇到换行符。
然后替换为捕获的组
不清楚你在问什么。我想你是在问如何从字符串中删除换行符。这可以通过以下方式实现:
$str =~ s/\n//g;