gpt4 book ai didi

c# - 正则表达式:尝试多次匹配字符串中任意位置的前缀

转载 作者:行者123 更新时间:2023-11-30 14:31:35 25 4
gpt4 key购买 nike

我正在为我的 C# 应用开发正则表达式,但无法获得我正在寻找的匹配项...

问题的关键在于我试图挑选出需要翻译的字符串并将其替换为国际化的对应字符串。正则表达式用于挑选可翻译的资源。我们已决定在所有可翻译资源前加上“OH_”前缀,将它们背靠背放置似乎是正则表达式的问题。我是否需要声明它们必须至少由一个空格分隔?

OH_OrderItemStatusChanged
Style1PS1A1OH_OrderItemStatusSpacerOH_OrderItemStatusID_2
(OH_OrderItemSentTo ) (OH_SalesRep )

我的正则表达式是 OH_\w+

它找到以下匹配项:

OH_OrderItemStatusChanged
OH_OrderItemStatusSpacerOH_OrderItemStatusID_2
OH_OrderItemSentTo
OH_SalesRep

第二场比赛实际上应该是两场比赛:

OH_OrderItemStatusSpacer
OH_OrderItemStatusID_2

我查看了几个示例,但找不到我要查找的内容。这是可以在正则表达式中完成的事情,还是我必须打破它?

最佳答案

OH_\w+

是一个好的开始,当然 \w+ 也匹配 OH_,因此您需要从匹配中排除它。这需要使用 negative lookahead assertion :

OH_(?:(?!OH_)\w)+

解释:

OH_       # Match OH_.
(?: # Start of non-capturing group:
(?!OH_) # Assert that we're not at the start of the string OH_,
\w # then match an alnum character.
)+ # Repeat as often as possible.

查看on regex101 .

关于c# - 正则表达式:尝试多次匹配字符串中任意位置的前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19846341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com