【发布时间】:2019-08-20 11:07:58
【问题描述】:
我正在尝试仅将sdtmig-3-1-2 等字符串中字符的第一个实例与XPath::replace 匹配,并将其替换为/,以便生成的字符串为@987654328 @。我不能保证关于该模式的其他任何事情,除了它会有一个或多个破折号。我很难找到始终只匹配- 的特定第一个实例的正则表达式模式。
我觉得我接近了:
(?:.+?)(-)(?:.+)
但这也匹配了完整的字符串,所以不好。
请不要提供任何解决方案,除了可以在https://regex101.com 上使用的普通正则表达式。 正则表达式的“风格”应遵守 XPath/XQuery 语义 (https://www.w3.org/TR/xmlschema-2/#regexs)。我无法控制正则表达式搜索中的全局标志。
【问题讨论】:
-
什么编程语言?
-
你为什么想要一个正则表达式?
-
仅限正则表达式。请不要使用任何可用于regex101.com 的普通正则表达式来提供解决方案。正则表达式的“风味”应遵守 XPath/XQuery 语义 (w3.org/TR/xmlschema-2/#regexs)。
-
我想要正则表达式,因为我必须使用正则表达式。我不能为此使用任何其他语言。
-
在充分尊重 Wiktor 的情况下,这不是与之前提出的问题的重复。该问题是特定于 Notepad++ 的,它具有与 XPath 匹配/替换不同的限制和语义。