Regex 匹配问题'\n';在PowerShell中
我在用密码战练习PowerShell。我目前正与之斗争 我的问题是我的匹配不正确,或者我没有理解输入是什么类型的字符串。我正在尝试查找给定数字的数据集。 输入是一个字符串,表示电话簿。每个集合中的信息都是以随机顺序排列的 因此,我已经尝试在每行新行之后首先拆分输入(Regex 匹配问题'\n';在PowerShell中,regex,powershell,Regex,Powershell,我在用密码战练习PowerShell。我目前正与之斗争 我的问题是我的匹配不正确,或者我没有理解输入是什么类型的字符串。我正在尝试查找给定数字的数据集。 输入是一个字符串,表示电话簿。每个集合中的信息都是以随机顺序排列的 因此,我已经尝试在每行新行之后首先拆分输入(-split“\n”)。没用,所以我用火柴试了一下。(例如,-匹配“*48-421-674-8974.*\n”)。 现在,我在匹配中所期望的是在下一个'\n'之前该数字的所有信息。但是我得到的是我想要的数据集加上下一行。我已经试过了\
-split“\n”
)。没用,所以我用火柴试了一下。(例如,-匹配“*48-421-674-8974.*\n”
)。
现在,我在匹配中所期望的是在下一个'\n'之前该数字的所有信息。但是我得到的是我想要的数据集加上下一行。我已经试过了\\n
,\\\\n
,单引号/双引号。但是我自己找不到任何解决办法
所以目前我的输入是:
“+1-421-674-8974 Bern TP-46017\n我已经导入了您的输入文本(保持\n字符完整),并编写了这行代码,该行将执行正则表达式
匹配:
([regex]".*48-421-674-8974[a-zA-Z ]+\\n").Matches($text)
现在,如果您从文件中加载实际的电话地址数据,可能需要像Wiktor Stribizew所说的那样指定换行符作为“`n”
*
是贪婪匹配。您需要的是非贪婪匹配(*?
)以开头的角括号开始,包括电话号码,以文字反斜杠和字符“n”结束
$inputText=@'
“+1-421-674-8974 Bern TP-46017\n在PS字符串中,换行符被定义为”`n“
,反斜杠被视为文字字符。不幸的是,这并没有改变结果中的任何内容:/我想这是您指定的。您的。*匹配所有字符,直到最后一次出现\n。结果是什么?如果您需要真正的帮助,而不仅仅是提示,请提供一个可复制的示例。不完全清楚是否有新行或两个字符组合\
和n
。不清楚如何从文件或某个变量获取数据。@PeterSchneider我想这是正确的提示。如何匹配直到第一次出现\n?请不要对代码段使用引用格式(
)。