如何通过regexp从字符串“password is Rtt3Ved36”获取密码?

时间:2018-03-18 17:00:52

标签: c# .net regex

条件是字符串可能是“密码Rtt3Ved36”(没有“是”)。

(?<=password\ is|password\ ).*

正则表达式不起作用,因为总是返回“是Rtt3Ved36”(但我需要“Rtt3Ved36”)。如何在OR状态下保持订单?

2 个答案:

答案 0 :(得分:2)

您可以使用

password(?: is)?\s*(.*)

并抓住第1组值。

请参阅regex demo

<强>详情

  • password - 文字子字符串
  • (?: is)? - 可选的子字符串空格+ is
  • \s* - 0+空白
  • (.*) - 第1组:除换行符之外的任何0 +字符。

在C#中:

var m = Regex.Match(s, @"password(?: is)?\s*(.*)");
var result = string.Empty;
if (m.Success) 
{
    result = m.Groups[1].Value;
}

答案 1 :(得分:-3)

根据这个网站:https://regex101.com/你的正则表达式确实有效并返回“Rtt3Ved36”。