Regex 具有双引号和空格的Perl分割字符串
我有这样一个字符串:Regex 具有双引号和空格的Perl分割字符串,regex,string,perl,parsing,Regex,String,Perl,Parsing,我有这样一个字符串:“abc”“cd-e”。我需要将其拆分为以下两个字符串: “abc” “cd-e” 我在Perl中尝试了几个选项,但无法满足我的需要。有人能告诉我吗?谢谢 my @strings = $input =~ /"[^"]*"/g; 假设输入有效。基本上,您可以使用正则表达式匹配来验证或提取,但同时执行这两项操作相当困难 假设引用的字段不能包含引号,因为您没有提到转义机制 假设输入有效。基本上,您可以使用正则表达式匹配来验证或提取,但同时执行这两项操作相当困难 假设引用的字
“abc”“cd-e”
。我需要将其拆分为以下两个字符串:
“abc”
“cd-e”
my @strings = $input =~ /"[^"]*"/g;
- 假设输入有效。基本上,您可以使用正则表达式匹配来验证或提取,但同时执行这两项操作相当困难
- 假设引用的字段不能包含引号,因为您没有提到转义机制
- 假设输入有效。基本上,您可以使用正则表达式匹配来验证或提取,但同时执行这两项操作相当困难
- 假设引用的字段不能包含引号,因为您没有提到转义机制
“
和后面有”
的空格上拆分:
使用严格;
使用警告;
我的$s='abc'cd-e';
my@matches=split/(?您可以在前面加一个“
,后面加一个”
的空格上进行拆分:
使用严格;
使用警告;
我的$s='abc'cd-e';
my@matches=split/(?如果您的输入按照您的建议有两个字符串(而不是任意的n个字符串),那么这应该可以工作:
$s = '"abc" "cd - e"';
$s =~ /(".*") (".*")/;
$s1 = $1;
$s2 = $2;
或者,您可以将
替换为“非引号”,即[^”]
,使其更加安全:
如果您的输入按照您的建议有两个字符串(而不是任意的n个字符串),那么这应该可以工作:
$s = '"abc" "cd - e"';
$s =~ /(".*") (".*")/;
$s1 = $1;
$s2 = $2;
或者,您可以将
替换为“非引号”,即[^”]
,使其更加安全:
还:还:
$s =~ /("[^"]*") ("[^"]*")/;
$s1 = $1;
$s2 = $2;