有没有办法使2正则表达式产生正则表达式?正则表达式,“两个正则表达式的总和”
我的意思是,我有一个正则表达式
(\bword\b)
和
(!\\(\w*)(\[.*\])*(\{(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\bword\b(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\})+)
有没有一种方法来匹配第一个正则表达式加上第二正则表达式?这意味着,所有“字”字里面没有“\ something {字母字母字字母}}”?
有没有办法使2正则表达式产生正则表达式?正则表达式,“两个正则表达式的总和”
我的意思是,我有一个正则表达式
(\bword\b)
和
(!\\(\w*)(\[.*\])*(\{(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\bword\b(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\})+)
有没有一种方法来匹配第一个正则表达式加上第二正则表达式?这意味着,所有“字”字里面没有“\ something {字母字母字字母}}”?
我不知道你的意图,并没有时间去分析你的表情,但look-ahead
可能是你
(?=\bword\b)(!\\(\w*)(\[.*\])*(\{(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\bword\b(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\})+)
根本不起作用... – user1722791
捕捉所有word
的\something{letters letters word letters letters}
之外的答案:
(\bword\b)|(?:\\(?:\w*)(?:\[.*\])*(?:\{(?:\w|\s|\\|\.|\{.\}|`|\-|\:|\/|')*\bword\b(?:\w|\s|\\|\.|\{.\}|`|\-|\:|\/|')*\})+)
我使用OR
并结合两者的表达使第二个表达式中的每个捕获组都成为非捕获组,因此只能在构造外捕获word
。
“|”是“还是”?因为当我在另一个正则表达式编辑器中尝试时,它会在\ something {} – user1722791
'''means'或''内部和外部使用两个单词,是的。你已经在第二个正则表达式中过度使用它了。请注意,我用非捕获组('(?:)')替换了第二个expresison中的每个捕获组('()')。这样你只能在构造外部捕获“单词”,但仍然匹配我认为的全部字符串(匹配和捕获之间有区别)。 –
根据你的描述:所有“字”话是不是里面的“\东西{字母字母字字母字母}”,我觉得应该是这么简单:
\bword\b(?!.*})
该解决方案假定括号{}
是平衡的。
取决于你的正则表达式工具包,但两种常规语言的交集是一种常规语言,所以更好的可以做到这一点。 –
我正在使用java。我应该将它添加到标签吗? – user1722791
如何匹配第二个正则表达式*不匹配第一个正则表达式?你能想出一个不同的例子,交叉点不是微不足道的吗? – tripleee