如何在两个字符之间获取文本

How to get text between two characters?

本文关键字:字符 两个 之间 获取 取文本      更新时间:2023-09-26

|text to get| Other text.... migh have "|"'s ...

我怎么能得到text to get的东西从字符串(并删除它)?

应该是第一个匹配

var test_str = "|text to get| Other text.... migh have '"|'"'s ...";
var start_pos = test_str.indexOf('|') + 1;
var end_pos = test_str.indexOf('|',start_pos);
var text_to_get = test_str.substring(start_pos,end_pos)
alert(text_to_get);

你不需要正则表达式;对于这样一个简单的任务,启动正则表达式引擎完全是多余的。

只使用基本的字符串操作:

function getSubStr(str, delim) {
    var a = str.indexOf(delim);
    if (a == -1)
       return '';
    var b = str.indexOf(delim, a+1);
    if (b == -1)
       return '';
    return str.substr(a+1, b-a-1);
    //                 ^    ^- length = gap between delimiters
    //                 |- start = just after the first delimiter
}
print(getSubStr('|text to get| Other text.... migh have "|"s ...', '|'));
// Output: text to get

现场演示。

获取方式:

"|text to get| Other text.... migh have '"|'"'s ...".match(/'|(.*?)'|/)

删除:

"|text to get| Other text.... migh have '"|'"'s ...".replace(/'|(.*?)'|/, "")

我不是正则表达式的专家,所以如果有人有改进,请编辑。

string = '|text to get| Other text.... migh have "|"''s ...';
string = string.replace(/^'|[^|]*'|/, '');

您必须通过使用match获得您想要的文本,然后运行replace:

var text = "|text to get| Other text.... migh have '"|'"'s ...";
text.replace(text.match(/'|([^|]*)'|/)[1], "");

您应该查找以下函数:

split()
substr()

根据你想如何解决你的任务可以使用。