点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我玩了一下正则表达式,并做了一个相对简单的正则表达式:
`('[^'] *'| [^ \。'] +)+ \。
我在此网站上制作的,它在这里正常工作,但是当我在 ABAP,我得到了上面提到的简短转储。
这是我的代码:
DATA(REGEX)=`('[^'] *'| [^ \。'] +)+ \.。 DATA(IN)=`这是我的'第一个。 句子"。 这是另一个"句子"。 这是另一个。 在字符模式结果数据(表)中查找正则表达式正则表达式的所有事件。
先谢谢您的问候!
嗨,凯文
恐怕您的"简单"正则表达式对于ABAP来说有点太复杂了,因为您正试图从正则表达式中获取分组和子分组(=最终的" + \"部分。 文字中的要点)。 我猜您正在尝试通过查找"。"来识别所有句子。 但忽略了那些放在单括号之间的内容?
我还没有完全弄清楚,但是这个正则表达式可以找到所有出现的"。"。 忽略单个qoutes之间的内容。您可以从那里去,因为该表将为您提供字符串中的位置,而不会返回结果本身。
\。(?=((?:[^'] *'){2})* [^'] * $)
礼物
您
关于正则表达式的性能(为什么引擎估计它太复杂了),我认为您可以联系Stack Overflow的一些专家(您应该解释一下要实现的目标)
关于您想要获得的结果,此正则表达式不够吗?
#Edit:将此答案作为对原始问题的注释,现在我意识到它是作为答案发送的。
< p>您好,每种编程语言都具有略有不同的正则表达式语法来表达每件事,该站点没有ABAP风格,您可能是为另一种语言而设计的。
在ABAP本身内部有一个可以测试的地方:report DEMO_REGEX_TOY 。
我猜您正在尝试在字符串中查找文字(在引号之间),这是一种正则表达式模式:
最诚挚的问候
Sandra Rossi 谢谢您的答复!
使用您的正则表达式,"字符串"和句点将放入新行,但我希望它们位于同一行。
Yor的答案对我来说已经足够了,但是非常感谢您!
我仍然不太确定为什么ABAP无法应付我的正则表达式,但是您的工作正常 很好。
您可以扩展正则表达式,以便我也忽略| pipe |内的句点吗? 字符?
感谢和问候,
Kevin
嗨,凯文,
实际上,我忽略了您的正则表达式误解了您的真正需求。 而且我以某种方式从未看到那行说ABAP regex遵循POSIX语法(我认为我从来没有打开过Regex帮助起始页)。 没问题,即使您仍然遗漏了一部分问题,我们也不介意提供帮助,但是当您全部提供这些问题时,您将获得更快,更好的答案。
一周热门 更多>