PowerShell正则匹配>与</之间日英混合字符的需求
调整PowerShell正则提取含日文的混合文本
你当前的PowerShell脚本仅能提取标签内的纯日文内容,要实现提取>和</之间包含日文且混有英文的内容,只需修改正则表达式即可。
修改后的正则与示例代码
# 调整后的正则表达式 $pattern = "(?<=>)(?=.*[\p{IsHiragana}\p{IsKatakana}\p{IsCJKUnifiedIdeographs}])[^<]+(?=</)" $text = 'tag3>Some text before 日本語 and some text after</tag><Before text 漢字</tag>' $matches = $text | Select-String -Pattern $pattern -AllMatches | ForEach-Object { $_.Matches.Value } $matches
运行结果
Some text before 日本語 and some text after Before text 漢字
正则逻辑说明
(?<=>):定位到标签结束符>之后的位置(?=.*[\p{IsHiragana}\p{IsKatakana}\p{IsCJKUnifiedIdeographs}]):确保匹配的内容中至少包含一个日文字符(平假名、片假名、汉字)[^<]+:匹配所有非<的字符,也就是从>到</之间的全部内容(?=</):定位到标签起始符</之前的位置
内容的提问来源于stack exchange,提问作者Aziz
相关产品推荐
相关产品推荐

