Javascript 中间不包含子字符串的匹配字符串
问题是如何匹配一个不具有未缩放点的带分隔符的子字符串 我有用点隔开的单词。转义点不是分隔符 这种情况下使用通配符的示例模式是Javascript 中间不包含子字符串的匹配字符串,javascript,regex,Javascript,Regex,问题是如何匹配一个不具有未缩放点的带分隔符的子字符串 我有用点隔开的单词。转义点不是分隔符 这种情况下使用通配符的示例模式是asd.*.xyz。看看下面的例子: 我想将其与(转义)匹配: 或 但是我不想匹配这个(当没有转义时): 斜杠后面没有点,只是一个字符 我试着使用消极前瞻: ^asd\.(?:(?![^\\]\.).)*\.xyz$ 但在这种情况下,最后一个逃逸点不允许它工作。如何实现这一点?您需要匹配任何文本,如果有任何点,您希望该点前面带有反斜杠。你可以用 ^asd\.[^.\\]*
asd.*.xyz
。看看下面的例子:
我想将其与(
转义)匹配:
或
但是我不想匹配这个(当
没有转义时):
斜杠后面没有点,只是一个字符
我试着使用消极前瞻:
^asd\.(?:(?![^\\]\.).)*\.xyz$
但在这种情况下,最后一个逃逸点不允许它工作。如何实现这一点?您需要匹配任何文本,如果有任何点,您希望该点前面带有反斜杠。你可以用
^asd\.[^.\\]*(?:\\.[^.\\]*)*\.xyz$
见
-字符串开头,然后是^asd\.
asd.
-0个或多个字符,而不是[^.\]*(?:\..^.\]*)*
和
,然后是任何转义序列的0个或多个重复(\
),然后是0个或多个字符,而不是\.
和
-\.xyz$
字符串末尾的.xyz
另一种编写模式的方法是
^asd.(?:\.[^.\\]]*.xyz$
(请参阅),但效率稍低。试试^asd(?:..\w+.*..xyz$
,请参阅。我不能使用\w
,因为内容可以是任何内容。那么为什么不^asd.\\\\\\\\.*.*.xyz$
?例如,请参见。asd.qwe\ert.xyz
,不匹配。我想我不清楚。这里的斜线是为了避开圆点。
asd.qwe.ert.xyz
^asd\.(?:(?![^\\]\.).)*\.xyz$
^asd\.[^.\\]*(?:\\.[^.\\]*)*\.xyz$