Regex 匹配问题'\n';在PowerShell中

Regex 匹配问题'\n';在PowerShell中,regex,powershell,Regex,Powershell,我在用密码战练习PowerShell。我目前正与之斗争 我的问题是我的匹配不正确,或者我没有理解输入是什么类型的字符串。我正在尝试查找给定数字的数据集。 输入是一个字符串,表示电话簿。每个集合中的信息都是以随机顺序排列的 因此,我已经尝试在每行新行之后首先拆分输入(-split“\n”)。没用,所以我用火柴试了一下。(例如,-匹配“*48-421-674-8974.*\n”)。 现在,我在匹配中所期望的是在下一个'\n'之前该数字的所有信息。但是我得到的是我想要的数据集加上下一行。我已经试过了\

我在用密码战练习PowerShell。我目前正与之斗争

我的问题是我的匹配不正确,或者我没有理解输入是什么类型的字符串。我正在尝试查找给定数字的数据集。 输入是一个字符串,表示电话簿。每个集合中的信息都是以随机顺序排列的

因此,我已经尝试在每行新行之后首先拆分输入(
-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?请不要对代码段使用引用格式(
)。