【问题标题】:Display all occurrences between two substrings within a string in react在反应中显示字符串中两个子字符串之间的所有出现
【发布时间】:2021-07-03 16:38:34
【问题描述】:

我正在尝试直接从包含超过 25 页重复信息的 div 中提取信息。例如,信息看起来像这样:

var first = "Your Name is: name Your Age is: age Your email is: email....Your Name is: name Your Age is: age Your email is: email....Your Name is: name Your Age is: age Your email is: email....Your Name is: name Your Age is: age Your email is: email....Your Name is: name Your Age is: age Your email is: email...." 

我想提取“你的名字是:”和“你的年龄是:”之间多次出现的子字符串,以及年龄、电子邮件。

var name = "Your Name is:"
var age = "Your Age is:"
var re = new RegExp(name,'gi');
var re2 = new RegExp(age,'gi');


var result = new Array();
while (re.exec(first){
results.push(re.lastIndex);}
var result2 = new Array();
while (re2.exec(first){
results.push(re2.lastIndex);}

var info = first.substring(
first.lastIndexOf(name) + 1,
first.lastIndexOf(age)
);


<span>{info}</span>

我希望 info 循环并显示所有值一次。 帮助。

【问题讨论】:

    标签: javascript reactjs regex string substring


    【解决方案1】:

    由于数据已更改,我已经更新了我的答案...

    如果是我,我会用“你的名字是:”分割 DIV 文本,然后运行这个正则表达式

    ^([\w ]+).*? Your Age is: (\d+).*?email is: ([\w@].*?) Your
    

    对于每一行,它都会拉取你想要的数据。

    regex101.com 上查看它。

    如果您不想或不能先拆分字符串,您将在电子邮件部分中获得乐趣以实际获取电子邮件。有关示例,请参阅this question

    【讨论】:

    • 我必须解释一下......意味着连续的数据输入,数据比名字和年龄多得多,因此......我只是在寻找一种方法来推送一个字符串数组。
    • 您必须在描述中包含该内容。当您举一个示例时,人们会合理地期望它是您希望正则表达式处理的文本的实际、现实示例。我们无法读懂你的想法。在您的问题中至少放置 2 行具有代表性的文本作为示例,以便我们可以看到文本的实际外观。如果您需要更改名称、数据等,请改用模拟数据。使用 John Smith 作为名称,为年龄输入有效值,使用 email@email.com 之类的电子邮件等。
    • 鉴于您对数据的新描述,我已经更新了工作答案
    • 我会记住这一点,尽管缺乏信息。您的建议可能会奏效,我会更多地研究正则表达式。但我仍然不明白如何在反应中显示字符串中的子字符串数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多