我正在尝试制作一个REGEX,以便在First name:
,Last name:
,Email:
之后提取文字而不包含标签。
这是标签之间的文字。
<MyText>
First name: Chris
Last name: Jones
Email: cj@dsf.com
</myText>
我一直在玩这样的事情:/(Last name:).*?
但这不起作用。有谁知道如何解决这个问题?
答案 0 :(得分:1)
我实际上并不知道您的脚本语言(REGEX支持可能有所不同)。但是这样的事情应该有效:
/^.*?:(.*?)$/m
一些解释:
使用m
修饰符(//m
)的正则表达式表示^
和$
匹配每行的开头和结尾,而不是字符串的开头和结尾。
.*?:
部分与Last name:
,First name:
等匹配。因为它不在括号(()
)之间,所以不会捕获它。
(.*?)
部分匹配冒号后面的所有内容(:
),并且因为$
放在它后面,它将匹配所有内容直到行尾。它位于括号之间,意味着它将被捕获。
要回答您的编辑,请使用以下命令:
/^First name: (.*?)$/m
/^Last name: (.*?)$/m
/^Email: (.*?)$/m
答案 1 :(得分:1)
使用.NET Regex,您可以使用正向lookbehind断言:
new Regex(@"(?<=Last name:).*");
根据上下文,您可能必须小心,但JavaScript正则表达式引擎不支持lookbehind断言,因此您不能在ASP.NET RegularExpressionValidator中使用此客户端。
答案 2 :(得分:0)
试试这个正则表达式:
/^.*?: (.*)$/