使用REGEX在特定单词列表中添加/删除连字符/破折号(美国vs英国英语)

兰迪

我正在尝试从文档中非常具体的单词列表中添加/删除连字符,例如:

预警,基线,启动>>预警,基线,启动

我想为此写一个REGEX行,因为任务和模式总是相同的:从已知单词对中添加/删除连字符。当然,我可以为每对使用单独的REGEX操作来执行此操作,但这非常笨拙且占用大量资源:

(afore)-(mention) >> $1$2
(base)-(line) >> $1$2
(start)-(up) >> $1$2
etc.

这似乎是一种更简单的方法:

(?:(afore)-(mention)|(base)-(line)|(start)-(up))    >> $1$2

问题在于,这为每个匹配提供了新的后向引用,这是没有用的。我可以列出两个列表,但是我会得到一些我不想要的奇怪匹配,如果列表太长,就会出现问题,并且可能会出现随机匹配(前行>>前行,基数>>基数,等等。):

(?:(afore|base|start)-(mentioned|line|up))  >> $1$2

有任何想法吗?提前致谢!

维克多·史翠比维

你可以使用一个名为捕获组使用(?<s>...)(?'s'...)语法:

(?<s>afore)-(?<r>mention)|(?<s>base)-(?<r>line)|(?<s>start)-(?<r>up)

或者,仅匹配整个单词,请添加单词边界:

\b(?:(?<s>afore)-(?<r>mention)|(?<s>base)-(?<r>line)|(?<s>start)-(?<r>up))\b

替换为${s}${r}

请参阅regex演示

连字符之前的任何部分将落在s命名的捕获中,第二部分将在Group中r.NET正则表达式中的命名后向引用语法为

$ {名称}

演示截图:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有破折号,连字符等单词的SOLR问题

删除破折号,但不能删除连字符

如何使破折号/连字符不破坏表格中的单词

连字符/破折号包含在正则表达式单词边界\ b中

如果在javascript .replace中使用,如何在RegEx中定位破折号或连字符?

如何替换表名中的连字符(破折号)?

如何在shell中重复破折号(连字符)

删除间距并通过javascript在单词之间添加破折号

Golang匹配破折号(连字符)

带破折号或连字符的RewriteRule

如何从文本中删除包含破折号的单词?

如何从数据框中删除仅包含破折号/连字符(-)的行,而又不影响python中的负值

Javascript Regex删除数字中破折号周围的空格而不是字符串

Python破折号-如何连续突出显示/加粗特定单词

在MySQL上进行全文搜索:连字符/破折号后无法按单词搜索

如何在2位数的角度4之后在输入字段中添加破折号/连字符

使用Regex从字符串中以特定顺序删除特定单词

如何从我的列表 python 中删除破折号

在工作日列表中添加破折号

Java删除字符串数组中的破折号

从Bash中的字符串末尾删除破折号

如何从字符串中删除'em'破折号?

java - 如何使用正则表达式从字符串中删除破折号(-),除了java中的数字和单词之间?

R regex:grep排除连字符/破折号作为边界

REGEX:如何排除包含破折号/连字符的文件名

如何使用c#删除字符串中的破折号(-)?

Java中的拆分字符串包含破折号/连字符

使用 jQuery 从 HTML 元素中删除破折号

使用 MySQL 在列名中使用连字符/破折号创建触发器