繁体   English   中英

寻找正则表达式解决方案

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM