我在Yahoo Pipes中有一个源,想要匹配问号后面的所有内容。
到目前为止,我已经想出了如何使用以下方法匹配问号:
\?
现在只需要匹配问号后面的所有内容。
我在Yahoo Pipes中有一个源,想要匹配问号后面的所有内容。
到目前为止,我已经想出了如何使用以下方法匹配问号:
\?
现在只需要匹配问号后面的所有内容。
\?(.*)
你想要第一个捕获组的内容。(?<=\?) .*
,这将仅匹配?
之后的所有内容。 - user391试试这个:
\?(.*)
圆括号是捕获组,您可以使用它来提取您感兴趣的字符串部分。
如果字符串可能包含换行符,则可能需要使用“点全部”修改符以允许点匹配换行符。是否需要这样做以及如何执行此操作取决于您正在使用的编程语言。看起来您忘记在问题中提到您使用的编程语言。
如果您的语言支持固定宽度后顾断言,则可以使用另一种替代方法:
(?<=\?).*
使用正向后行断言技术:
(?<=\?).*
(这里我们正在搜索一个以问号为前缀的文本)
Input: derpderp?mystring blahbeh
Output: mystring blahbeh
基本上,?<=
是一个组构造,在进行任何匹配之前需要转义问号。
它们的性能非常好,但并非所有实现都支持它们。
\?(.*)$
如果您想匹配问号后面的所有字符,可以使用一个组来匹配任何字符,并最好使用"$"符号来表示行结束。
使用这个方法,您可以获取所有内容,甚至包括换行符。
请查看这个网站:http://rubular.com/。该网站允许您输入一些示例文本(您在网站上要查找的内容),然后随着您构建正则表达式,它将实时突出显示匹配的内容。
/([a-zA-Z]{4}):/
将匹配 Test: Welcome
并获取 Test
。 - Austin Linstr.replace(/^.+?\"|^.|\".+/, '');
这段代码与选择要删除的内容有关,但在两个引号之间的内容不能使用超过两次。它所做的就是选择不在引号之间的任何内容,并将其替换为无。
即使对我来说也有点困惑,但我会尝试解释一下。 ^.+?
(不是任何东西可选)直到第一个"
,然后|
或/停止(仍在研究它的真正含义)直到/在^.
处选择了在第二个"
之前没有选择任何内容,使用(|
停止/在)。并选择所有随后出现的内容。
\?.*
匹配问号后面的所有内容(包括空字符串)。 - khachik"\\?"
。 - CodyBugstein