我正在使用javascript中的正则表达式来捕获两个可选字符之间的部分字符串。
可选字符为:'='和'||'
方案:
获取'||'之后的值我用split()函数管理它。
为了获得“一个简单的消息”部分,当'='和'||'时,我设法用正则表达式match(/\=(.*)\|\|/).pop()
提取字符串在字符串中。
当有两个可选字符之一时,是否有任何关于使用一个正则表达式提取字符串的建议?
我也试过了/(\=)?(.*)(\|\|)?/
但是没有用。
答案 0 :(得分:2)
答案 1 :(得分:2)
这应该可以做你想要的:
<?php
$country = array(
'zh' => array( 'tw' => "Traditional Chinese"),
'zh' => array( 'cn' => "Simplified Chinese"),
'en' => "English",
'jp' => "Japanese"
);
echo $country['zh']['tw'];
echo $country['zh']['cn'];
echo $country['en'];
echo $country['jp'];
这将匹配^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]);
});