正则表达式匹配问号之后的所有内容?

时间:2010-12-11 21:18:51

标签: regex

我在Yahoo Pipes中有一个Feed,想要在问号后匹配所有内容。

到目前为止,我已经找到了如何使用..来匹配问号。

\?

现在只是为了匹配问号之后/之后的所有内容。

6 个答案:

答案 0 :(得分:206)

\?(.*)

您需要第一个捕获组的内容。

答案 1 :(得分:43)

试试这个:

\?(.*)

括号是一个捕获组,可用于提取您感兴趣的字符串部分。

如果字符串可以包含新行,则可能必须使用“全部点”修饰符以允许点与新行字符匹配。您是否必须这样做,以及如何执行此操作取决于您使用的语言。您似乎忘记提及您在问题中使用的编程语言。

如果您的语言支持固定宽度的lookbehind断言,则可以使用的另一种方法是:

(?<=\?).*

答案 2 :(得分:20)

使用正向后视技术:

(?<=\?).*

(我们在这里搜索以问号开头的文字)

Input: derpderp?mystring blahbeh
Output: mystring blahbeh

Example

基本上?<=是一个群组结构,需要转义的问号,然后才能进行任何匹配。

他们表现得非常好,但并非所有实施都支持他们。

答案 3 :(得分:9)

\?(.*)$

如果你想在“?”之后匹配所有字符你可以使用一个组来匹配任何字符,你最好使用“$”符号来表示行尾。

答案 4 :(得分:2)

查看此网站:http://rubular.com/基本上,该网站允许您输入一些示例文本(您将在您的网站上查找的内容),然后在构建正则表达式时,它将突出显示正在匹配的内容实时。

答案 5 :(得分:0)

str.replace(/^.+?\"|^.|\".+/, '');

当您想在“”之间选择其他要删除的内容并且在一个字符串中使用两次以上时,有时会很难使用。它所做的就是选择“”之间的任何内容,然后将其替换为空。

就我而言,这有点令人困惑,但请尝试解释一下。 ^.+?(不是可选的),直到第一个",然后|,直到/在^.之前/直到第二个{ {1}}使用("停/停)。并选择..之后的所有内容。