我希望找到一个.
,并在找到(
后使用正则表达式获取任何字符。我如何实现这一目标?
我还想看一些关于Javascript正则表达式的好教程。
答案 0 :(得分:1)
您似乎遇到了转义概念的问题。 .
和(
字符在RegEx中具有特殊含义,因此您需要在它们前面放置\
来逃避它们。例如,要匹配文字点,您可以使用\.
对于重复,您可以分别使用*
或+
分别为0+和1+。它们在前面的表达式中用作修饰符。因此,例如,A+
表示“一个或多个A
字符”,而A*
表示“零个或多个A
字符”。您还可以使用?
修饰符来更改这些匹配的“贪婪”行为,但这是一个更复杂的主题。
如果您需要约束确切的重复次数,可以使用{n}
语法。例如,您可以使用A{10}
来匹配10 A
个字符,或使用A{3,5}
来匹配3到5个A
个字符。
这些也适用于组和类,例如[A-Z]{3}
或(a*b+){3}
。
就RegEx教程而言,几乎无处击败Regular-Expressions.info,尽管MDN article on RegEx在JavaScript方面也可能有用。
答案 1 :(得分:1)
以下正则表达式适合您:
[.]([^(]*)[(]
您要捕获的文本将在组#1中提供。
Javascript代码:
var str='here is a sentance. and some other text ( here )';
var match = str.match(/[.]([^(]*)[(]/);
console.log(match[1]); // and some other text