[英]Looking for a regular expression solution
我正在寻找与前两个特定字段(用Perl编写的可变字符串)匹配的正则表达式。 在文件中,没有注释的行#
以任何字符开头,长度为非特定长度,后跟一个空格,另一个非特定长度的字符串,后跟一个空格: name info data1 data2 data3
。
以下仅用于匹配第二个字段,但我希望前两个字段完全匹配:/ /^[^#].*\\s$INFO\\s/
$INFO="info"
/^[^#].*\\s$INFO\\s/
其中$INFO="info"
。 我尝试了以上的变种,但无济于事。 我的第一次尝试是: /^[^#]$NAME\\s$INFO\\s/
对于上面的记录,如果$NAME="name"
对我来说似乎合乎逻辑。
我的第一次尝试是:/ ^ [^#] $ NAME \\ s $ INFO \\ s /
这将不起作用,因为(从问题暗示) $NAME
之前的字符是#
或none 。 因此,您只需要删除第一个[^#]
:
/^$NAME\s$INFO\s/
将匹配字符串:
"$NAME $INFO <whatever or nothing>"
尽管我不是正则表达式专家,但这可能有用(我也不清楚问题的确切细节,因此我作了一些假设):
'$NAME=name #$INFO=info $DATA=data1 data2 data3'.replace(/#[\S]+/g,'').match(/\$[\S]+/g);
这将返回一个数组。 前两个元素是“字段”,即[0] ='$ NAME = name'AND [1] ='$ DATA = data1'
希望对您有帮助。 并向我的正则表达式致歉。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.