通过使用带有单词边界的正则表达式和带有非字母数字字符的文本来解决问题

2020-08-16 14:19发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 使用带有单词边界的正...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

使用带有单词边界的正则表达式时遇到问题。

首先:我的目标。 我想删除文本中所有少于5个字符的单词。 像往常一样,我开始玩DEMO_REGEX_TOY。 首先尝试: \ <\ S {1,5} \> 。 这应该将每个单词与1到5个字符匹配。 但是在示例程序(文本: Cathy的黑猫……)中,它通过选项FIRST OCCURRENCE, Cathy ,所有出现的 Cathy 和 s 。 \ <和\>的文档说单词被定义为不间断的字母数字字符字符串。字母数字是字符/字母和数字,所以我的错。 但是,如果我将长度更改为7或更大,那么突然之间,整个单词都匹配了( Cathy's )。 那怎么可能 我在这里想念什么? 当我将 \ S 更改为 [[:: graph:]] 时,它的工作原理相同。

任何线索,我将不胜感激。 提前非常感谢!

最好的问候

Michał

5条回答
暮风yp
2020-08-16 14:37

您好MichałBadura

我同意,您解释的正则表达式处理似乎存在问题。 如果将长度设为1到5,为什么单引号是非字母数字字符? 如果将长度设为1到7,为什么它是字母数字?

看看您的任务,采用其他方法怎么样? 找到所有用空格分隔的单词,然后删除长于指定宽度的单词(例如:[^ \ s] +)。

亲切的问候,

Mateusz

一周热门 更多>