我正在尝试在Javascript中构建一个如果出现某个字符串则不匹配的RegEx。所以我想匹配这个大括号{
,但前提是它不是字符串else
。
我正在尝试执行此操作^ *[^else]* *{.*$
但事实上,如果else
字符串中出现任何字符,则该字符不匹配,例如,这与此不匹配:
erai {
我希望在{
出现else {
时匹配所有情况,尽管这种情况<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<mvc:annotation-driven></mvc:annotation-driven>
<mvc:resources location="/WEB-INF/resource/" mapping="/resource/**"/>
.
.
.
</beans>
。
请你帮我。这是我的DEMO
答案 0 :(得分:1)
您可以使用否定前瞻。这支持JavaScript:
(?!\s*else).+ *({).*$|
JavaScript RegEx不支持ifs,但我们可以使用技巧来实现:
(?!RegExp)
这是第一部分,如果RegExp
(这是一个正则表达式)没有出现,那么我们之后会做代码:
.+ *({).*$
这就是我们运行的RegEx。破碎了,它是:
.+ Match anything
* Until 0 - unlimited spaces
({) Capture the {
.*$ Match anything till the end
现在,除非我们在末尾添加|
或OR,否则这将无效。这将欺骗它像if语句一样工作
答案 1 :(得分:-2)
您要找的是negative lookbehind。