设置-match语句

时间:2014-03-25 00:28:43

标签: parsing powershell match

我试图根据许多条件设置-match语句。

这是我的条件: 包含假日日期的行遵循这些规则。

  • 它们包含文字"标题",后跟
  • 任何一个或多个角色,然后是
  • 文字"时间:" (注意尾随空格),然后是
  • 三"字"字符和空格,后跟
  • 日期" dd mmm yyyy"格式(即" 2012年12月31日“),然后是
  • 不是空格的字符,"字"或"数字"

与带下划线的项目符号点匹配的字符是需要的字符 提取,转换为[datetime]值,然后返回给调用者。

数据样本基于假日日期。焦点线处于BOLD状态。

  

< br />事件状态:已确认:http://www.google.com/calendar/event?eid = MjAxNTAyMTRfNjBvMzBkcjQ2c28zMGMxZzYwbzMwZHI0Y28gdXNhX19lbkBo' title =' alternate' /> http://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic/20150214_60o30dr46so30c1g60o30dr4co' />美国http://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic/20140214_60o30dr46so30c1g60o30dr4ck 2014-03-24T19:02:40.000Z2014-03-24T19:02:40.000Zhttp://schemas.google.com/g/2005#kind' term =' http://schemas.google.com/g/2005#event' /> Valentine& s DayWhen:2014年2月14日星期五< br> < br>谁:美国的假期

这是我到目前为止所做的: 'title.*when:\s+(\w{1,3})\s(?<Date>)(?\S\W\D)'

我收到此错误:

parsing "title.*when:\s+(\w{1,3})\s(?<Date>)(?\S\W\D)" - Unrecognized grouping construct. At D:\test.ps1:9 char:8 + if ( $_ -match 'title.*when:\s+(\w{1,3})\s(?<Date>)(?\S\W\D)') + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], ArgumentException + FullyQualifiedErrorId : System.ArgumentException

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为你离开了这里:

(?<Date>)(?\S\W\D)

命名组构造是(?后跟正则表达式和结束语:

(?<Date>?\S\W\D)