Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 想要一个reqular表达式来解析带有↵;性格_Javascript_Regex_Node.js - Fatal编程技术网

Javascript 想要一个reqular表达式来解析带有↵;性格

Javascript 想要一个reqular表达式来解析带有↵;性格,javascript,regex,node.js,Javascript,Regex,Node.js,希望只解析来自以下电子邮件线程的最新回复。i、 你好Nikhil Bopora,↵↵简单地说,我正在建立一个 替代电子借贷↵平台。 我编写的通用正则表达式涵盖了[\s\s]*上的各种用例/[\s]*([\s\s]*)[\s]*\n\n[\s]*。编写/ 他不在工作↵ 性格 有人能帮我用javascript写一个好的正则表达式来解析它吗 你好Nikhil,↵↵简单地说,我正在建立一个 替代电子借贷↵站台。↵↵↵2016年1月10日星期日下午1:16, 迪帕克·莫达克↵写的:↵↵> 迪帕克·莫达克

希望只解析来自以下电子邮件线程的最新回复。i、 你好Nikhil Bopora,↵↵简单地说,我正在建立一个 替代电子借贷↵平台。

我编写的通用正则表达式涵盖了[\s\s]*上的各种用例
/[\s]*([\s\s]*)[\s]*\n\n[\s]*。编写/
他不在工作↵ 性格

有人能帮我用javascript写一个好的正则表达式来解析它吗

你好Nikhil,↵↵简单地说,我正在建立一个 替代电子借贷↵站台。↵↵↵2016年1月10日星期日下午1:16, 迪帕克·莫达克↵写的:↵↵> 迪帕克·莫达克 发送消息↵>↵> 我正在尝试建立一个金融产品,需要 您的反馈和见解。↵>↵> 请求的时隙:↵> --------------------------↵> 2016年1月11日星期一,晚上10:00↵>↵>↵>


没有一个干净的正则表达式,但我能让它工作。我分两个步骤完成了这项工作,首先删除Unicode字符(我猜您无论如何都不想在结果中看到这些箭头)。也许你只需要正则表达式,但我提供了所有的代码,希望能让你更清楚地知道我做了什么。我注意到,上面字符串中的第一个日期在日期中有逗号,而字符串中的第二个日期没有。我假设这正是电子邮件将继续出现的方式,但如果不是,您可以相应地调整正则表达式。我希望这有帮助

   <script>
       "use strict";
         var patt = /()/;
         var myString = "";
         var match=[];

            myString = "Hello Nikhil,↵↵Just to give a brief, I am in process of building an alternate e-lending↵platform.↵↵↵On Sun, Jan 10, 2016 at 1:16 PM, Deepak Modak ↵wrote:↵↵> Deepak Modak has sent a message↵>↵> I am trying to build a financial product, need your feedback & insights.↵>↵> Requested TimeSlots:↵> --------------------------↵> Mon Jan 11 2016, 10:00 PM↵>↵>↵>";

         //for the replace regex, using the required 4 hexadecimal digits "21b5" that represent the unicode character "downwards arrow with corner leftwards"
            patt = /\u21b5/g;
         //replacing arrow with empty space
            myString = myString.replace(patt," ");

         //resetting the pattern. I added a pipe (or) to account for the possibility that the email is not a reply. Looking for "On Sun, Jan 10, 2016 at 1" or similar pattern to represent start of end of captured group of interest.

            patt = /(.+?)(?:On\s+[A-Z]{3},\s+[A-Z]{3}\s+\d{1,2},\s+\d{4}\s+at\s+\d|$)/i;

            match = patt.exec(myString);

            console.log("The submatch: " + match[1]);

    </script>

“严格使用”;
var patt=/()/;
var myString=“”;
var匹配=[];
myString=“你好,Nikhil,↵↵简单地说,我正在建立一个替代的电子贷款系统↵站台。↵↵↵2016年1月10日星期日下午1:16,Deepak Modak↵写的:↵↵> 迪帕克·莫达克发了一条信息↵>↵> 我正在尝试建立一个金融产品,需要你的反馈和见解。↵>↵> 请求的时隙:↵> --------------------------↵> 2016年1月11日星期一,晚上10:00↵>↵>↵>";
//对于replace regex,使用所需的4个十六进制数字“21b5”,表示unicode字符“向下箭头,角向左”
patt=/\u21b5/g;
//将箭头替换为空白
myString=myString.replace(patt,“”);
//重置模式。我添加了一个管道(或)来解释电子邮件不是回复的可能性。正在寻找“2016年1月10日星期日1点”或类似模式来表示捕获的感兴趣组的开始和结束。
patt=/(.+?)(?:On\s+[A-Z]{3}、\s+[A-Z]{3}\s+\d{1,2}、\s+\d{4}\s+at\s+\d}$)/i;
match=patt.exec(myString);
log(“子匹配:+match[1]);

要尝试对此给出一个简短的回答,这里有一个单独的正则表达式,不需要任何替换即可工作。\u21b5表示“↵“并使这成为可能。如果您想稍后删除箭头,只需使用/\u21b5/模式进行单独搜索,并替换为空格,就像我在前面的回答中所做的那样。”

/((.|\u21b5)+?)(?:On\s+[A-Z]{3},\s+[A-Z]{3}\s+\d{1,2},\s+\d{4}\s+at\s+\d|$)/i
补充资料:

在最后一次编辑之后,我会尽量不去理会这个问题,但我认为下面是对上一个模式的重大改进。下面的模式也可以独立存在(不需要替换),但是改进(我相信)没有捕获组。返回的匹配应准确显示正在搜索的内容;需要拉出子匹配,如上一个示例中所示。这是通过使用正向前瞻来完成的。请让我知道是否有更好的方式来传达这一点(例如,在评论中)


不知道为什么在发送邮件时,enter符号没有被转换为\n。它来自gmail。Wow 2投票支持通过简单搜索即可解决的问题?
/(?:(?:.|\u21b5)+?)(?=(?:On\s+[A-Z]{3},\s+[A-Z]{3}\s+\d{1,2},\s+\d{4}\s+at\s+\d|$))/i