假设我有一个像“aus”这样的词,我想用“off”替换它的所有出现。然后我也想找到它的所有可能的拼写,如“AU”,“AU”,“AUS”等等。但重要的是它只有当它“独立”时才被取代,因为它只有一个空格,一个下划线(_)或前面和/或后面没有任何东西 所以它应该在
中替换" aus"
"aus"
"_aus"
"_aus_"
"aus_"
但不在
"ausschalten"
"aushebeln"
" ausschalten"
我尝试了^(_| )(A|a)(U|u)(S|s)(_|)$
,但它无效:/
答案 0 :(得分:1)
您可以使用外观和RegexOptions.IgnoreCase
标记(或其内联版本(?i)
):
@"(?i)(?<![\w-[_]])aus(?![\w-[_]])"
请参阅regex demo
解释:
(?<![\w-[_]])
- 检查aus
之前是否没有数字或字母字符(使用字符类减法,我从_
删除了\w
类)aus
- 文字字符序列aus
(?![\w-[_]])
- 检查aus
后是否没有字母或数字。 simpler alternative \p{L}
(任意Unicode基本字母)和\p{N}
(任意数字):
(?i)(?<![\p{L}\p{N}])aus(?![\p{L}\p{N}])