考虑:
"\[|\(phone\)\]"
我们正在构建元数据字段,并且需要标记包含术语“phone
”的文件名。案例标准不存在,因此我可以看到混合案例或单个案例的任何变体(phone
Phone
PHONE
等。)可能有也可能没有空格来描述单词;有时会有下划线 - 所以我不能使用单词边界。在所有情况下,phone
一词包含在括号[]
或括号()
中。
我正在尝试为Powershell脚本构建的正则表达式将查找[
或(
后跟不区分大小写的photo
并以]
结尾的模式或)
。
"\[|\(phone\)\]"
< - 这就是我在这里得到的吗?
答案 0 :(得分:1)
Powershell使用.NET正则表达式,(?i)
使用-match
。但结果是Powershell -replace
和-imatch
,-ireplace
和\[phone\]|\(phone\)
也是has support。所以正则表达式不必太复杂:
[phone]
它会匹配以下文字:(PhONe)
或()
请注意,正则表达式非常具体。在这种情况下,[]
或phone
和{{1}}之间不允许有空格。
答案 1 :(得分:1)
我是通过接受两种可能的解决方案之一来实现的,
\[phone\]|\(phone\)
这样您可以匹配(手机)或[手机],但不匹配[手机]和(照片)。
但是,您必须设置一个标志以匹配不区分大小写。例如,在Javascript中,你会在分隔符后添加一个i,例如/ [phone] |(phone)/ i