Regex 单词内部匹配的正则表达式
假设我有以下类似的文本:Regex 单词内部匹配的正则表达式,regex,Regex,假设我有以下类似的文本: _startOneEnd _startTwoEnd _startThreeEnd 我想在以下方面进行匹配: 以开头\u开始 以结束结束 我想要捕获介于两者之间的位,例如,上面变量中的1、2、3: 有人能推荐一个正则表达式来捕捉这一点吗?如果每一行输入只包含与示例类似的文本,类似这样的方法应该可以: /^_start(.*)End$/ ^将模式锚定到字符串的开头。$将其锚定到字符串的末尾。括号表示中间部分。在C#中,您可以使用: (?<=_start).*(?=
_startOneEnd
_startTwoEnd
_startThreeEnd
我想在以下方面进行匹配:
以开头\u开始
以结束结束
我想要捕获介于两者之间的位,例如,上面变量中的1、2、3:
有人能推荐一个正则表达式来捕捉这一点吗?如果每一行输入只包含与示例类似的文本,类似这样的方法应该可以:
/^_start(.*)End$/
^
将模式锚定到字符串的开头。$
将其锚定到字符串的末尾。括号表示中间部分。在C#
中,您可以使用:
(?<=_start).*(?=End)
_start((One)|(Two)|(Three))End
<代码>(?< P>)中间的部分是否仅是给出的例子尚不清楚。 如果是,请使用以下命令:
(?<=_start).*(?=End)
_start((One)|(Two)|(Three))End
如果不是,它可能是任何东西,请尝试以下方法:
_start(.*?)End
请注意,匹配是非贪婪的。您使用的是什么语言?只有当您为此正则表达式启用多行模式时才可以。然后它才是正确的。@JanDvorak它看起来不像他试图匹配的模式跨行。我假设输入是逐行处理的。您是对的。这些看起来像是单独的字符串。描述仍然很模糊(“字符串的“=>”行的)JordValk OK,我根据你的建议修改了它。在这个问题上有一个警告字,在问题中没有被勾画出来。这将在<代码>星际调结束< /COD>匹配。因此如果你不想在中间部分匹配空白,则将<代码> .<代码>改为更合适的,可能是代码> \W。不支持lookback。我知道的任何其他正则表达式引擎都可以做到这一点。并不是所有的东西都围绕着JavaScript。问题中有没有提到它?我听起来像所有东西都围绕着JavaScript?我只是在这里提到JS作为局外人,就像它可能是JavaScript一样。对不起,我误解了你的评论:)在这种情况下,“向后看/向前看”似乎有些过分,没有真正的必要。