【发布时间】:2018-11-20 22:09:39
【问题描述】:
我构建匹配的正则表达式 2 个字母或 2 个字母后跟 '/' 和接下来的 2 个字母,例如:
rt bl/ws se gn/wd wk bl/rt
/^(((\s+)?[a-zA-Z]{2}(\/[a-zA-Z]{2})?)(\s+|$))+$/i
而且没有问题。 我遇到的下一个问题是匹配所有不包含“/”字符的“单词”。 并用“/”分隔的重复值替换所有匹配项。对于上述示例,例外输出应为:
rt/rt bl/ws se/se gn/wd wk/wk bl/rt
我尝试了一段时间,但没有成功。你能帮我解决这个问题吗?
更新 1:
我已经开始使用匹配不包含“at”的单词的正则表达式
(\b((?!(at))\w)+\b)
Et the and I want to replace match elements with python like
re.sub(r'(\b((?!(at))\w)+\b)', r'\1/\1', text)
但首先必须找到正确的元素...
【问题讨论】:
-
向我们展示您的尝试,这将有助于确定您的问题。
-
另外,如果您提到您正在使用正则表达式的编程语言,那就太好了。
-
您的正则表达式非常复杂。你可以简化它。例如,
(\s+)?与\s*相同。也可以看看\w和\b。 -
@Wiktor Stribiżew OP 从不排除工作将由其他人完成。这个论坛有没有寻求帮助的地方不对?
-
那么你可以使用
re.sub(r'(?<!\S)[^\W\d_]+(?!\S)', r'\g<0>/\g<0>', s)。或re.sub(r'(?<!\S)([^\W\d_]+)(?!\S)', r'\1/\1', s)。要排除at单词匹配,请使用re.sub(r'(?<!\S)(?!at(?!\S))([^\W\d_]+)(?!\S)', r'\1/\1', s)
标签: javascript regex regex-negation