正则表达式:匹配字符或换行之间的所有内容
Regex: Match everything between characters or new line
我正在尝试提出一个正则表达式来识别以下代码段中 abc=123456|123456 的实例:
xyz=abcdef|abcdef||abc=123456|123456||cat=dog|dog||foo=bar|bar||
xyz=abcdef|abcdef||abc=123456|123456
xyz=abcdef|abcdef||abc=123456|123456||
abc=123456|123456||xyz=abcdef|abcdef||
这里的要求是匹配字符串可以有尾随的双竖线,也可以没有。
我目前正在使用这个:
/abc=(.*?)+((?=\|\|)|(?=\r|\n))/
但这似乎打破了匹配结束的 OR 条件。
提前感谢任何帮助。
预览link:
http://regexr.com/3be2t
您可以使用行尾锚点而不是 \r
或 \n
,并且您必须删除 (.*?)
之后存在的 +
。对于 +
,它会进行贪婪匹配,并且捕获组必须包含一个空字符串。
\babc=(.*?)(?=\|\||$)
或
\babc=(.*?)(?=\|\||\r|\n)
我正在尝试提出一个正则表达式来识别以下代码段中 abc=123456|123456 的实例:
xyz=abcdef|abcdef||abc=123456|123456||cat=dog|dog||foo=bar|bar||
xyz=abcdef|abcdef||abc=123456|123456
xyz=abcdef|abcdef||abc=123456|123456||
abc=123456|123456||xyz=abcdef|abcdef||
这里的要求是匹配字符串可以有尾随的双竖线,也可以没有。
我目前正在使用这个:
/abc=(.*?)+((?=\|\|)|(?=\r|\n))/
但这似乎打破了匹配结束的 OR 条件。
提前感谢任何帮助。
预览link: http://regexr.com/3be2t
您可以使用行尾锚点而不是 \r
或 \n
,并且您必须删除 (.*?)
之后存在的 +
。对于 +
,它会进行贪婪匹配,并且捕获组必须包含一个空字符串。
\babc=(.*?)(?=\|\||$)
或
\babc=(.*?)(?=\|\||\r|\n)