繁体   English   中英

JavaScript:使用Regex提取两个可选字符之间的字符串部分

[英]JavaScript: Extract part of string between two optional characters with Regex

我正在使用javascript中的正则表达式来捕获两个可选字符之间的部分字符串。

可选字符为:'='和'||'

场景:

  • LENGTH =一条简单的消息|| 5
  • LENGTH =一条简单的消息
  • 长度|| 5

用于获取'||'之后的值 我用split()函数来处理。

为了获得“简单消息”部分,我设法同时使用'='和'||'时使用正则表达式match(/\\=(.*)\\|\\|/).pop()提取字符串match(/\\=(.*)\\|\\|/).pop() 在字符串中。

有两个可选字符之一时,用一个正则表达式提取字符串的任何建议吗?

我也尝试了/(\\=)?(.*)(\\|\\|)?/但没有用。

您可以使用基于负前瞻的正则表达式从=和可选||捕获值。

/=((?:(?!\|\|).)*)/

正则演示

这可能应该做您想要的:

^LENGTH(?:=([^|]*))?(?:\|\|(\d+))?$

这将匹配LENGTH=||之间的部分 之后的部分。 如果存在,两者都将返回结果。

例:

[
    "LENGTH=A simple message||5",
    "LENGTH=A simple message",
    "LENGTH||5"
].forEach(function(string)
{
    var result = string.match(/^LENGTH(?:=([^|]*))?(?:\|\|(\d+))?$/);
    console.log("found:",result[1],result[2]);
});

当然,这里有一些关于数据实际格式的假设。

输出:

found: A simple message / 5
found: A simple message / undefined
found: undefined / 5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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