我有這個文本文件:正則表達式正在Regex101而不是內部PowerShell的
[Tabs]
MAILBOXSEND=1
MAILBOX=8
USERS=6
DOCUMENTS_Q=9
MED_WEBSERVCALLS_LOA=3
FCLMNA=1
INCZOOMFORM=1
USERSB=1
USERSB_ONE=1
DATAPRIV=1
MED_WEBSERVCALLS=2
TINVOICES=1
PORDERS=9
PORDERSTOTAL=1
LOGPART=1
LOGCOUNTERS=1
PARTMSG=1
[External Mail]
Send=Y
Hostname=Server
Domain=Domain
[email protected]
MyName=My Test
Port=25
SSL=0
[Search]
SUPPLIERS=5,1
StartButton=1
Ignore Case=0
PART=6,1
我試圖捕捉到下一個支架[]
集團[External Mail]
之間的所有文字,
我有這個正則表達式這做的工作,在Regex101測試,畢竟測試的,我發現它不是內部PowerShell的工作:
$Text = Get-Content c:\text.txt
$Text -match '(?s)(?<=\[External Mail\]).*?(?=\[.*?\])'
or:
$Text | Select-String '(?s)(?<=\[External Mail\]).*?(?=\[.*?\])'
沒有返回
你知道我錯過了什麼嗎?
感謝
你有沒有保護你的'\'? –
我不會爲此使用正則表達式。您可以自己轉換爲對象,也可以使用[Get-INIContent](http://blogs.technet.com/b/heyscriptingguy/archive/2011/08/20/use-powershell-to-work-with -any-INI-file.aspx)。感謝您添加您的代碼。 – Matt