此代码用于解析电子邮件,它作为表存储在mySQL数据库中。我相信这是PHP代码。 (.+)
做了什么?
/A new order has been successfully placed through(.+)Name:(.+)Company:(.+)Email:(.+)Address 1(.+)Order ID:(.+)Date:(.+)Payment Type:(.+)Order Status:(\s*)Accepted(.*)\n(.+)\$([\d\.]+)\s+X/si
谢谢,超级brainiacs!
答案 0 :(得分:6)
看起来像正则表达式匹配。 (.+)
部分是'通配符'捕获。
这可以针对字符串运行,并且可以提取必要的信息。在大多数情况下,此字符串与语言无关。
只是几点说明:
最后的 /si
意味着'case insensitve'和'。匹配所有'(意味着。将匹配所有内容,包括\ n(通常不会))
在您的普通正则表达式启用语言中匹配为(.+)
后,可以引用捕获($#
)(其中#是(.+)
在正则表达式字符串中出现的顺序。
编辑:您已更新了自己的问题,例如,Name:(.+)Company:(.+)
部分将与Name:Some random set of characters Company: Some more random characters
匹配,其中“一些随机字符集”和“更多随机字符”被提取到变量中{ {1}}和$1
(因为它们是正则表达式中顺序的第一个和第二个)。
答案 1 :(得分:2)
这是一种正则表达式。相关的PHP文档从这里开始:PCRE (Perl-Compatible Regular Expression) Introduction
每个.+
都是“任何字符,一次或多次”的占位符。它周围的括号使得该占位符匹配的任何内容都被“捕获”,以便以后可以使用它(在您的情况下,将其存储到数据库中)。
答案 2 :(得分:1)
答案 3 :(得分:1)
这似乎是一个肮脏的正则表达式来验证有效的子串“名称”,“公司”等......,(。+)模式允许捕获每个“字段”的值,事实上,在这里,它捕获了这些子串的所有内容。
我认为这是php函数ereg();
的参数答案 4 :(得分:0)
它是一个通配符。它。表示单个字符,+表示指定字符的组合。例如[a-zA-Z +]表示字符组合的范围从a-z A-Z和[a-z +]。表示a-z之后的一个字符
答案 5 :(得分:0)
(。+)是用PCRE(正则表达式)编写的通配符。